Android引用本地aar包
2017-03-08 本文已影响341人
ladder_builder
生成aar包
在build.gradle文件中,apply plugin: 'com.android.library'
引用aar包
在Application和Library中引用aar有些不同。
假设aar包的名字问“test.aar”
在Application module中引用aar
- 将aar放到module的aars目录下
- 在build.gradle中添加
repositories {
flatDir {
dirs 'aars'
}
}
dependencies {
compile(name: 'test', ext: 'aar')
}
其实aar可以放到任意目录,只要保证和flatDir中的名字一致即可。
在Library module中引用aar
比如A是一个Libray module,B是Application module,其中B依赖A,而A又依赖一个本地的aar。
此时如果还按上面那种方法去设置,变出现找不到aar的错误。
这是因为Library A不会把自己的依赖打包给B,而只是告诉B自己的依赖列表,然后由B去加载所有的依赖包。
但是由于B在自己module下的aars目录中没有发现test.aar,所有才会报错。
问题的关键,就是要告诉B,应该如何去找test.aar。在B的build.gradle文件中,设置好正确的flatDir即可。
repositories {
flatDir {
dirs project(":A").file('aars')
}
}