Direct local .aar file dependencies are not supported when building an AAR.Direct local .aar file dependencies are not supported when building an AAR.
Direct local .aar file dependencies are not supported when building an AAR.
问题描述:打debug包没有问题,但是打release包(无论是apk还是aar包)时会报错“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.在项目根目录创建一个空的文件夹:firebaselib
2.在firebaselib文件夹下面,根据自己的aar包创建对应的文件夹,每个aar都需要创建一个文件夹。
3.build.gradle文件内容(示例):
configurations.maybeCreate("default") artifacts.add("default", file('Bugly_aar_4.0.4.aar'))
4.在settings.gradle中将每一个aar包的module都写进去(这一步很重要,否则Android studio识别不了你写的module,相当于注册你写的module,不要忘了这一步)
include ':lib_common', ':firebaselib', ':firebaselib:bugly',//新增,写上你新写的module ':firebaselib:vivo_push_sdk',//新增,写上你新写的module ':firebaselib:mipush',//新增,写上你新写的module
5.在你需要的模块中引入你的新module(每一个需要的模块 都需要引入,要不然会报找不到xxx.aar)
dependencies {implementation project(path: ':firebaselib:bugly') implementation project(path: ':firebaselib:vivo_push_sdk') implementation project(path: ':firebaselib:mipush')}