任务很简单,最小程度影响当前项目的前提下,导入一个AAR第三方库。
要解决的问题在于
按导入 .jar
的方法导入 .aar
会失败
使用Android Studio自带的 Improt Module
中的导入AAR会创建一个新的Module,而我们只想声明一个依赖
先说这么做的优点
Module该有好处自然有的了
不需要复杂漫长地发布到JCenter等地方,才能使用依赖
修改后直接复制粘贴AAR就可使用
缺点也是明显的
不要求发布,就不适用多人协作的大项目,电脑GG后源代码也会丢失
不带注释,需要手动选择代码目录
修改后复制粘贴AAR才能使用
AAR的版本被保存在了另一个项目中
缺点比优点多可还行
流程
1. 一个有正常的Library Module的 Android 项目
新建一个项目,带上需要的Library,或最简单的就是直接clone一个现有的依赖。
2. 生成AAR文件
使用 ./gradlew assemble
或者Android Studio中, 点击Gradle面板/你的library/Tasks/build/assemble
我在使用中,单纯地运行应用并不一定能生成AAR。
3. 定位AAR文件
在项目/library/build/outputs/aar/中找到生成的AAR文件,给 library-release.aar
(谁能解释一下它和 library-debug.aar
除了名字不一样有什么区别?字节数都一样)改个名字,拉出来。
最好在文件名后加一个tag或版本号,确保以后更新时Sync Gradle可以成功更新代码库。
4. 把AAR复制到所需项目
复制到项目/app/src/main/libs/下,可能需要新建一个 libs
文件夹(文件名可以随便起)。
5. 在Gradle中添加目录
首先修改项目根目录主 build.gradle
,在 allprojects/repositories
(不写classpath的那个区域里)下添加
flatDir {
dirs 'src/main/libs'
}
注意把 libs
替换为你那奇思妙想的新名字。
在Dependencies中引用AAR
添加 implementation(name:'library-name', ext:'aar')
注意 name
中不带后缀。
Ta-Da。完成!
参考: