Android之引用包含远程依赖库的aar(引用aar时找不到arr的远程依赖库问题)

aar引用很简单,将sdk-zhousf-1.0-20170907.054540-1.aar复制到libs包下,在项目的build.gradle文件中增加以下代码即可:

 
 
compile(name:'sdk-zhousf-1.0-20170907.054540-1',ext:'aar')
 
 

但是如果aar中包含了远程依赖,例如aar中依赖了第三方库:

compile 'com.zhousf.lib:okhttp3:2.8.6'

若采用上面的方法引用则在运行时会找不到okhttp3 库中的类。

针对这种问题可以采用maven仓库来解决,我们可以将aar生成到本地或远程maven仓库,再引用仓库中的aar。

例如我们创建一个module:mylibrary

我们采用gradle脚本进行aar上传,双击uploadArchives脚本即可

上传完毕后我们本地maven仓库中是否生成了aar文件:

可以看出该目录生成了aar文件和一些pom文件,我们打开sdk-zhousf-1.0-20170907.072455-1.pom看下:

原来aar中的远程依赖库都在这里进行了声明,看来只引用aar文件是不够的。

在要引入aar的中加入:

compile 'zhousf.lib:sdk-zhousf:1.0-SNAPSHOT'
运行检查结果,的确没有问题,aar中的远程依赖库okhtt3可以正常使用了。

输入Terminal命令检验下:gradlew :app:dependencies --configuration compile 




当然建议将aar发布到远程maven仓库,这样更方便维护,本文只介绍了本地maven仓库的解决方案,远程maven仓库解决方案原理是一样的。

感兴趣的同志可以下载demo测试下。

http://download.csdn.net/download/zsf442553199/9968688


猜你喜欢

转载自blog.csdn.net/zsf442553199/article/details/77882531