我有一个多模块应用程序,我想在辅助模块上实现 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' )
这似乎是一个依赖转移问题。
目前,您的第二个模块通过“实现”的方式依赖于aar,并且您的应用程序模块依赖于您的第二个模块。因此,您的应用程序模块无法访问aar。
为了解决这个问题,你可以让你的第二个模块通过“api”的方式依赖于aar,这样任何依赖于第二个模块的模块都可以访问aar。
api fileTree(include: ['sdk-behavior-v3.0.1-release.aar'], dir: 'libs' )
更改此:
implementation fileTree(include: ['sdk-v3.0.1.aar'], dir: 'libs' )
对此:
compileOnly fileTree(include: ['sdk-v3.0.1.aar'], dir: 'libs' )