生成、导出aar
-
在项目中File-New-New Module-Android Library-Next,如下图
-
到此会在你的项目中,生成一个Library,如下图
-
在生成的Library的项目中开发,开完完成,运行assamble,生成aar,如下图
-
到此生成了aar包,导出即可
工程引用aar
-
把上一步导出的aar引入到需要引用的项目中,一般放在app/libs文件夹中,在app/build.gradle中配置参数,如下图
-
在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:(如下图)
解决办法:
-
在引入aar的项目中的app/build.gradle添加找不到的第三方依赖,重新编译成功。
-
需要上传aar,不管上传本地还是maven
- 生成aar目录, 具体参考在GitHub发布项目供依赖引用 - 简书,详细描述。
- 在需要的引入的项目的根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 }