每次打开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')
导入远程库:咯