[已解决]Direct local .aar file dependencies are not supported when building an AAR. gradle升级到8.2.2

错误信息:

  • What went wrong:
    Execution failed for task ‘:XXX:bundleReleaseAar/bundleDebugAar’.

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:
XXXX.aar

环境:

linux: ubuntu18.04
Android Studio:HedgeHog 2023.1.1 patch 2

出现原因:

gradle升级8.2.2及以上版本,构建包时出现的问题。

本次解决措施:

1、实际引用aar库的modle对aar只编译:

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

更改为

compileOnly fileTree(dir:'aar_libs', include: ['*.jar', '*.aar'])

2、在app/build.gradle 中增加aar的编译引入:

implementation fileTree(dir: '../XXXModule/aar_libs', include: ['*.jar', '*.aar'] dir: 'libs')

注意事项:

1)app/build.gradle 中增加implementation 中dir需要指定目录,或者在app中copy一份。
2)有地方说需要加下面内容的,本次处理删除了所有下面的内容,是可以正常编译的。

repositories {
    flatDir {
        dirs 'libs',"../aar_libs"
    }
}
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
直接本地的 .aar 文件依赖项不支持构建 AAR。由于任何本地 .aar 文件依赖项的类和 Android 资源不会打包在生成的 AAR 中,因此生成的 AAR 将无法使用。在这种情况下,Android Gradle 插件的早期版本也会生成损坏的 AAR(尽管不会抛出此错误)。如果您的 Flutter 项目中使用了本地的 .aar 文件依赖项,那么您需要将其转换为 Maven 依赖项,或者将其打包为本地 Maven 存储库中的库。您可以使用以下步骤解决此问题: 1. 将本地的 .aar 文件依赖项转换为 Maven 依赖项。您可以使用以下命令将其转换为 Maven 依赖项: ``` ./gradlew :<module-name>:uploadArchives ``` 然后,您可以在项目的 build.gradle 文件中添加以下 Maven 依赖项: ``` repositories { mavenLocal() // other repositories } dependencies { implementation '<group-id>:<artifact-id>:<version>' // other dependencies } ``` 2. 将本地的 .aar 文件依赖项打包为本地 Maven 存储库中的库。您可以使用以下步骤将其打包为本地 Maven 存储库中的库: a. 在项目的 build.gradle 文件中添加以下 Maven 存储库: ``` repositories { mavenLocal() // other repositories } ``` b. 在本地 Maven 存储库中创建一个新的目录,并将 .aar 文件复制到该目录中。 c. 在 .aar 文件所在的目录中创建一个新的 build.gradle 文件,并添加以下内容: ``` apply plugin: 'maven' group = '<group-id>' version = '<version>' artifactId = '<artifact-id>' repositories { mavenLocal() } uploadArchives { repositories { mavenDeployer { repository(url: "file://${System.properties['user.home']}/.m2/repository") } } } ``` d. 在 .aar 文件所在的目录中运行以下命令: ``` ./gradlew uploadArchives ``` 然后,您可以在项目的 build.gradle 文件中添加以下 Maven 依赖项: ``` repositories { mavenLocal() // other repositories } dependencies { implementation '<group-id>:<artifact-id>:<version>' // other dependencies } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值