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')

}

猜你喜欢

转载自blog.csdn.net/health7788/article/details/132815303
今日推荐