最近为了适配Android 13,升级了AS(Android Studio Dolphin | 2021.3.1 Patch 1),顺便gradle也升级了(7.2.1),本来程序运行的好好的,准备打包发布的时候,发现没法打包,真是汗颜。于是各种搜索,发现网上的教程还真是不少,于是都照着实施了一遍,发现真的可行的实在不多,再次记录一下我填好坑的结果。
开发环境
gradle version
classpath 'com.android.tools.build:gradle:7.2.1'
gradle wrapper
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
android studio version
Android Studio Dolphin | 2021.3.1 Patch 1
问题描述
Direct local .aar file dependencies are not supported when building an AAR
解决方案
1.在你的工程目录下创建一个文件夹local_repo,每个aar文件可以单独的创建一个子文件夹,例如lib1,然后把aar文件放入,然后在lib1目录下创建一个build.gradle文件,内容如下:
configurations.maybeCreate("default")
artifacts.add("default", file('test.aar'))
2.在settings.gradle导入该工程
include ':local_repo:lib1'
3.在你需要依赖的工程里的build.gradle里增加依赖:
api project(path:':local_repo:lib1')
这样你的程序就可以正常打包了。
总结
网上类似的代码有很多,但是说的不是很仔细,需要注意细节:
1.项目导入及引用的路径要正确,
api project(path:':local_repo:lib1')
是因为我在module中使用的,不能使用implementation
;
2.如果有多个本地的aar需要引用,需要分别创建工程目录及
build.gradle
文件,经过尝试,写到一个文件里add
是不行的,只能加载第一个aar
文件。
3.也可以把aar文件放在
application
的module里,也是可以解决这个问题,但是这样不方便管理。