网络知识 娱乐 [已解决]Direct local .aar file dependencies are not supported when building an AAR.

[已解决]Direct local .aar file dependencies are not supported when building an AAR.

错误信息:

* What went wrong:
Execution failed for task ':AliPlayer:bundleReleaseAar'.
> Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file depen
dencies would not be packaged in the resulting AAR. Previous versions of the Android Gradle Plugin produce broken AARs in this case too (despite not throwing this error). The following
 direct local .aar file dependencies of the :AliPlayer project caused this error: E:CODEXXXXXXXXrlibsAliyunPlayer-5.4.1-full.aar

出现原因:gradle升级4.0及以上版本,构建包时出现的问题。

网上百度了,看了各种博客。
解决方式各不相同, 但是我按着网上所说步骤操作,该问题还存在。
列举一下

api fileTree(include: ['*.aar', '*.jar'], exclude: [], dir: 'libs')

有这种的:

implementation files('libs\:XXXXX.aar')

还有这种的:

implementation('XXXXXXX.aar')

有这种的:

 implementation(name: 'XXXX', ext: 'aar')'

还有一种是:
1.在根目录下 New -> New Module -> Import .JAR/.AAR Package,名称为subAar,然后将你的aar文件导入,
最后点击finish,就创建成功了,subAar的目录下存在3个文件:build文件;一个是aar文件;build.gradle,其中build.gradle文件中是引用的aar文件的声明,其中内容为

`configurations.maybeCreate("default")
artifacts.add("default", file('XXXX.aar'))`

在库模块build.gradle文件中引用它:

implementation project(":subAar")

2.在settings.gradle中引入:

 include ':subAar'

然后构建就可以成功了,

But ,我是因为实际项目中存在多个aar文件,网上也有介绍最后一种形式可以存在多个aar文件这样的情况,我试了之后还是不行,就继续百度。
终于找到一种基于最后一种方法的形式
1.在根目录下 New -> New Module -> Import .JAR/.AAR Package,名称为subAar1,然后将你的aar文件导入,
最后点击finish,就创建成功了,然后根据有多少个aar文件在根目录下创建多少个Import .JAR/.AAR Package类型的Module ,
2.然后再根目录下,创建一个文件命名为LocalRepo,分别将创建的Import .JAR/.AAR Package类型的Module 移动到LocalRepo文件下。
3.在项目中引用

    api project(path: ':LocalRepo:AarModule1r')
    api project(path: ':LocalRepo:AarModule2')

4.在settings.gradle中引入:

include ':LocalRepo:AarModule1'
include ':LocalRepo:AarModule2'

如图:
在这里插入图片描述

这样就可以构建包成功了,记录下。