Direct local .aar file dependencies are not supported when building an AAR.

最近升级了最新的AndroidStdio版本,然后导入之前的安卓工程

然后经过一番折腾后项目可以跑了,但是意外发现出release包的时候报错了,

复制代码
Direct local .aar file dependencies are not supported when building an AAR.

网上有很多解决方法,但是我觉得写的不是很详细,在这里再简单的记录一下。

原因:Android studio版本高,Android插件版本高。子module中依赖了aar包,由于我的项目是组件化项目,子module依赖aar包是必然的。传递依赖也会有问题,例如 a.aar->module A->module B,就算module B依赖了module A,module A依赖了a.aar,这时候依旧会出问题正确的办法是要a.aar->module B 且 a.aar->module A,即无论moduleA moduleB都依赖a.aar。

解决方法:将引入的aar包变成一个module,让其他需要的模块可以随时引用,这样的好处在于,不需要将aar包复制来复制去,每个module都copy一份到libs中。也不会出现重复依赖的问题。

下面就写一下我的解决步骤:

1.在项目根目录下面新建一个文件夹 supportBaseLib,然后将aar文件移动到这个文件夹下面,有多少个aar就新建多少个文件夹。

2.新建build.gradle文件在supportBaseLib中,文件中的内容如下:

复制代码
configurations.maybeCreate("default")
artifacts.add("default", file('support_autolayout-release.aar'))
复制代码
工程结构如图:

support_autolayout-release.aar 这个名字改成自己的aar的名字就好了

3.在settings.gradle中将每一个aar包的module都写进去(这一步很重要,否则Android studio识别不了你写的module,相当于注册你写的module,不要忘了这一步)

4.在你需要的模块中引入你的新module(每一个需要的模块 都需要引入,要不然会报找不到xxx.aar)

我的项目中有2处用到,所以添加了2个地方,这个根据自己的来。

这样重新配置好了,重新clean\build一下,如果没有报错的话就是好了。

编译之后supportBaseLib目录下面就会有build文件夹,里面的东西时编译文件,不用管了,能出release包,到手机上安装一下,没有问题。

相关推荐
2501_9151063238 分钟前
Perfdog 成本变高之后,Windows 上还能怎么做 iOS APP 性能测试
android·ios·小程序·https·uni-app·iphone·webview
愤怒的代码1 小时前
从开发调试到生产上线:全维度 Android 内存监控与分析体系构建
android·java·kotlin
jzlhll1231 小时前
Android最简化发布模块到mavenCentral
android·mavencentral
2501_915106321 小时前
iOS 安装了证书,HTTPS 还是抓不到
android·网络协议·ios·小程序·https·uni-app·iphone
好奇龙猫2 小时前
【人工智能学习-AI-MIT公开课13.- 学习:遗传算法】
android·人工智能·学习
TO_ZRG2 小时前
Unity打包安卓、iOS知识点
android·unity·android studio
周杰伦fans2 小时前
AndroidStudioJava国内镜像地址gradle
android·java·android-studio
艾莉丝努力练剑2 小时前
【Linux进程控制(一)】进程创建是呼吸,进程终止是死亡,进程等待是重生:进程控制三部曲
android·java·linux·运维·服务器·人工智能·安全
2501_924064112 小时前
2026年移动应用渗透测试流程方案及iOS与Android框架对比
android·ios
用户69371750013842 小时前
谷歌官方推荐:Android 性能优化全攻略——从工具到实战,两周提升 App 评分
android·android studio·android jetpack