AS生成aar包并在其他工程引用aar包和遇到的坑#
前一段时间也写过一篇关于aar生成和引用的文章,有网友反映格式不标准,还有一些遇到的问题没有发出来,所以再重新整理出来,图文并茂流程清晰,希望大家多支持!话不多少干货整起。
生成、导出aar
-
在项目中File-New-New Module-Android Library-Next,如下图
微信截图_20181212105617.png -
到此会在你的项目中,生成一个Library,如下图
微信截图_20181212105811.png -
在生成的Library的项目中开发,开完完成,运行assamble,生成aar,如下图
微信截图_20181212105915.png 到此生成了aar包,导出即可
工程引用aar
-
把上一步导出的aar引入到需要引用的项目中,一般放在app/libs文件夹中,在app/build.gradle中配置参数,如下图
微信截图_20181212114029.png -
在app的build.gradle文件添加如下内容
apply plugin: 'com.android.application' android { xxxx } repositories { flatDir { dirs 'libs' //this way we can find the .aar file in libs folder } } dependencies { implementation(name: 'mylibrary-release', ext: 'aar') }
Rebuild运行成功,直接引用即可,到此完成aar的生成、导出、引用。
引用aar时找不到arr的远程依赖库问题
问题描述:
如上述,在library中引入第三方依赖(如下图), 编译生成aar,但是在引入的项目中编译运行时报错: Caused by: java.lang.ClassNotFoundException:(如下图)
微信截图_20181212135344.png
微信截图_20181212144615.png
解决办法:
在引入aar的项目中的app/build.gradle添加找不到的第三方依赖,重新编译成功。
-
需要上传aar,不管上传本地还是maven
- 生成aar目录, 具体参考https://www.jianshu.com/p/64c23ae5483d,详细描述。
- 在需要的引入的项目的根build.gradle和app/build.gradle添加配置参数,重新编译成功。
根build.gradle
buildscript { repositories { maven{ url 'xxxx'//本地路径或者远程仓库路径 //file://D://WorkSpace/myaar/repository/ } } } allprojects { repositories { maven{ url 'xxxx'//本地路径或者远程仓库路径 //file://D://WorkSpace/myaar/repository/ } } }
app/build.gradle
android { xxxx...... } dependencies { implementation 'xxx'//远程依赖名称和版本号 //com.my.test:myaar:1.0.0 }
注释:下一篇详细写一下生成aar构建maven,发布在本地和github引用