[转]报preDebugAndroidTestBuild——应用程序与测试应用程序版本不同的解决方案

每次打开android studio时都会报题目的错误,对工程的运行并没有实际影响,但由于看着BUILD FAILED几个大字很不爽,就决定查下给解决掉。

为表示感谢或对知识的尊重,先将参考文献列在前面

参考文献:

http://keep.01ue.com/?pi=336339&_a=app&_c=index&_m=p

https://www.cnblogs.com/BlueFire-py/p/9058208.html        并非对该问题的解答,是对Gradle的解释


问题现象:


解决方案:

在每个Module的build.gradle文件中dependencies关键字下,添加一行代码。

configurations.all {  
        resolutionStrategy.force 'com.android.support:support-annotations:26.1.0'  
    }

然后,同步一下即可。

注:必须是该Project下所有的Module都需要这样。


下面,是对第二篇参考文献的“引用”

gradle-warpper.properties文件:warpper包装的意思,properties财产,所有权的意思。

gradle-wrapper:目的在于团队开发过程中统一gradle版本号

这个文件存在的意义在于:它可以启动gradle内置的Wrapper task帮助我们自动生成wrapper所需的目录结构

它自动生成的文件是:

文件中参数介绍:

实战使用:当导入别人的项目的时候,把自己常用项目的Gradle-wrapper.properties文件替换掉别人的。

 

setting.gradle:工程树,项目有多少个moudle,都会在这里显示。还有我们导入的第三方依赖

 

groovy语法:咯

 

project 的 build.gradle文件:主要四个标签

buildscript:是用来声明gradle脚本自身需要的资源 { 依赖项dependencies,      第三方插件和maven仓库地址 repositories{ jcenter(),maven(),google()托管第三方插件的平台} }

ext:用于自定义属性,咯

allproject:repositories{}这个用于多项目构建,为你所有的module提供第三方库,为所有的项目提供共同的依赖包,在子项目可以配置自己的单独的依赖包,和buildscript有区别,互相没有关系

 

task clean:运行gradle clean命令时,执行此处的task,与Androidstudio的clean命令一样,删除build文件

 

module的build.gradle文件:

appley plugin提供插件

apply  plugin 二进制插件

apply  from   应用脚本插件

android{}这个是Android插件提供的一个拓展,让我们自定义AndroidGradle工程

  compliesdkversion 编译所依赖的AndroidSDK 版本

  buildTOOLversion 构建该Android工程所用的构建工具版本

  defaultconfig{}默认设置,这是一个ProdultFlavor,它允许我们根据不同的情况生成不同的app

    ndk{}多平台编译,生成so包的时候使用,包括四个平台armeabi,armeabi-v7a ,x86,mips。使用第三方库提供的sdk的时候,可能会附带so库

    sourcesets,源代码合集是java插件用来管理代码和描述资源的概念,比如告诉gradle关于jin的so包放在了app/libs路径上,让它编译的时候自己去找。

dependencies{}:

  complie fileTree(include:[".jar"],dir:"libs")* :把本地libs文件夹下的jar包全部导入。

  complie project()引入本地的一个moudle

  complie group:name:version 引入网上仓库的依赖


导入第三方类包的方法

 

导入jar包:copy到lib目录下即可(因为gradle里面的第一句话)

 

导入so包:so包应该放在相应模块下的src目录下的main目录下的jinLibs目录(自己新建)

原理:

build.gradle中会有一些不会显示的默认配置,比如下面的

 

 导入第三方java类库含源码包library:

1.先把从github上下载下来的library解压,把library的文件夹所有复制到工程下边(与主工程app同级,复制到文件、工程都可)可以新建一个exact文件夹专门存放第三方库

2.项目根目录下settigs.gradle添加:include ':App',':viewpagerindicatorlibrary'    如果是exact目录下  include ':App',': exact:viewpagerindicatorlibrary' 

3.app/build.gradle的dependencies里边添加:compile project(':viewpagerindicatorlibrary')  如果是exact目录下 同上

4.打开open Module Settings看到viewpagerindicatorlibrary 已经加入进来

5.还需在viewpagerindicatorlibrary目录下添加一个build.gradle的文件  跟主的app/build.gradle差不多

 

 

导入arr:aar其实也是一个压缩文件,相比jar文件,它能够含带res资源文件等,aar文件的引入方式有两种:

1.将.aar文件粘贴到自己项目的libs目录下

2.修改app/build.grdle配置文件

添加:repositories flatDir { dirs 'libs' }}

这个是添加一个本地仓库,并把libs目录作为仓库地址。

3.dependencies中添加一行:compile(name:'pullrefreshlibrary', ext:'aar')

 

 

导入远程库:咯










猜你喜欢

转载自blog.csdn.net/bendan50/article/details/80848835
今日推荐