当前位置: 首页 > news >正文

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包,到手机上安装一下,没有问题。

相关文章:

  • 算法之分治
  • java 中for、while循环
  • Apache Hadoop的核心组成及其架构
  • 气膜建筑在体育和娱乐行业的多样化应用—轻空间
  • 小程序视图渲染数据和部分事件的绑定
  • 讲透计算机网络知识(实战篇)01——计算机网络和协议
  • 企业级开源项目,云缓存解决方案:CacheCloud
  • 苹果WWDC24一文总结,携手OpenAi,开启Ai新篇章
  • 操作系统复习-Linux的文件系统
  • 第8章 函数
  • C++的STL 中 set.map multiset.multimap 学习使用详细讲解(含配套OJ题练习使用详细解答)
  • 细说ARM MCU的串口接收数据的实现过程
  • 3D感知视觉表示与模型分析:深入探究视觉基础模型的三维意识
  • 【介绍下Pandas,什么是Pandas?】
  • VitePress做一个自己的知识博客
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 03Go 类型总结
  • android 一些 utils
  • Angular Elements 及其运作原理
  • classpath对获取配置文件的影响
  • CSS实用技巧干货
  • ES2017异步函数现已正式可用
  • iOS小技巧之UIImagePickerController实现头像选择
  • LeetCode18.四数之和 JavaScript
  • Spring声明式事务管理之一:五大属性分析
  • 初识MongoDB分片
  • 日剧·日综资源集合(建议收藏)
  • 十年未变!安全,谁之责?(下)
  • 使用parted解决大于2T的磁盘分区
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 昨天1024程序员节,我故意写了个死循环~
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • $.ajax,axios,fetch三种ajax请求的区别
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (C++17) std算法之执行策略 execution
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (二)linux使用docker容器运行mysql
  • (剑指Offer)面试题34:丑数
  • (三)elasticsearch 源码之启动流程分析
  • (一)Docker基本介绍
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)重识new
  • (转载)OpenStack Hacker养成指南
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET 8.0 中有哪些新的变化?
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .Net Core 生成管理员权限的应用程序
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET导入Excel数据
  • .Net各种迷惑命名解释
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)