【发布时间】:2020-01-14 05:45:29
【问题描述】:
我们将 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/caches中的所有 Gradle 缓存@as suggested in this answer -
this somewhat similar question中的所有建议
- 我检查了有问题的模块使用
apply plugin: 'com.android.library'(而不是com.android.application) - 我尝试在受影响的模块中将 appcompat 依赖项更新为
androidx.appcompat:appcompat:1.1.0并删除该依赖项
- 我检查了有问题的模块使用
更新
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 也没有帮助。
【问题讨论】:
-
您是否错过了 gradle.properties 文件中的
android.useAndroidX=true和android.enableJetifier=true? -
正在使用 React Native 项目?
-
@JeelVankhede:我们在项目范围的 gradle.properties 中都有这两个。
-
@sajadabbasi:不,这个项目与 React Native 无关。
-
@Jonik 请确认您在任何模块中都没有任何支持库工件。
标签: android android-gradle-plugin android-jetifier