我们将 Android Gradle 插件从 3.4.2 更新到 3.5.0(并将 Gradle 从 5.1.1 更新到 5.4.1)。
之后,构建开始在一些子模块中失败。尝试assemble
任何构建变体都会产生这种情况(命令行和 Android Studio 中的错误相同):
> Failed to transform artifact 'bottom-navigation.aar (project :bottom-navigation)' to match attributes {artifactType=jar}.
> Execution failed for JetifyTransform: <project_root>/bottom-navigation/build/outputs/aar/bottom-navigation-release.aar.
> Failed to transform '<project_root>/bottom-navigation/build/outputs/aar/bottom-navigation-release.aar' using Jetifier.
Reason: Cannot open a library at 'FileMapping(from=<project_root>/bottom-navigation/build/outputs/aar/bottom-navigation-release.aar, to=<project_root>/bottom-navigation/build/.transforms/9b2af95a5f0e0055110660c22ff05ab5/jetified-bottom-navigation-release.aar)'. (Run with --stacktrace for more details.)
任何想法如何解决这一问题?
我试过的
- AS中的“使缓存无效”,并按照此答案中的建议清除所有Gradle缓存
~/.gradle/caches
- 这个有点相似的问题中的所有建议
- 我检查了有问题的模块使用
apply plugin: 'com.android.library'
(而不是com.android.application
) - 我尝试
androidx.appcompat:appcompat:1.1.0
在受影响的模块中更新 appcompat 依赖项并删除该依赖项
- 我检查了有问题的模块使用
更新
Gradle 插件 3.5.0 中开始出现问题;构建在本地和我们的 CI 机器上对我来说表现不稳定。
例如,干净的构建失败:./gradlew clean assembleBetaRelease
在./gradlew assembleBetaRelease
工作时失败!
另外,有时我会得到AAPT: error: attribute ... not found
而不是上述Failed to transform artifact
错误。
恢复到 Gradle 插件 3.4.2,所有这些问题都消失了。
2019 年 10 月编辑:Gradle 插件 3.5.1 仍然出现这种奇怪的行为。编辑 2019 年 11 月和 3.5.2。升级到 Gradle 5.6 也无济于事。