构建 Android 库时出错:多模块应用程序不支持直接本地 .aar 文件依赖项

问题描述 投票:0回答:2

我有一个多模块应用程序,我想在辅助模块上实现 aar 文件。 如果我实现 aar,我的应用程序模块工作正常,但我需要我的辅助模块。

但我收到此错误:

构建 AAR 时不支持直接本地 .aar 文件依赖项。生成的 AAR 将被破坏,因为任何本地 .aar 文件依赖项中的类和 Android 资源都不会打包在生成的 AAR 中。在这种情况下,以前版本的 Android Gradle 插件也会产生损坏的 AAR(尽管不会抛出此错误)。 :features:second-module 项目的以下直接本地 .aar 文件依赖项导致了此错误:D:\user\my-app eatures\second-module\libs\sdk-v3.0.1.aar

我在

libs
上添加
flatDir
:

repositories {
  flatDir {
     dirs 'libs'
  }
}

这就是我实现 SDK 的方式:

    implementation fileTree(include: ['sdk-v3.0.1.aar'], dir: 'libs' )
android gradle aar multi-module
2个回答
0
投票

这似乎是一个依赖转移问题。

目前,您的第二个模块通过“实现”的方式依赖于aar,并且您的应用程序模块依赖于您的第二个模块。因此,您的应用程序模块无法访问aar。

为了解决这个问题,你可以让你的第二个模块通过“api”的方式依赖于aar,这样任何依赖于第二个模块的模块都可以访问aar。

api fileTree(include: ['sdk-behavior-v3.0.1-release.aar'], dir: 'libs' )

0
投票

更改此:

implementation fileTree(include: ['sdk-v3.0.1.aar'], dir: 'libs' )

对此:

compileOnly fileTree(include: ['sdk-v3.0.1.aar'], dir: 'libs' )
© www.soinside.com 2019 - 2024. All rights reserved.