我最近下载了 Android Studio Bumblebee ,它很有帮助地询问我是否想升级到 Android Gradle Plugin 7.1.0,这是与 Android Studio Bumblebee 一起发布的版本。
升级后,出现构建错误:
Unable to load class 'com.android.build.api.extension.AndroidComponentsExtension'.
This is an unexpected error. Please file a bug containing the idea.log file.
查看 idea.log
文件,我看到:
A problem occurred evaluating project ':main'.
at org.gradle.initialization.exception.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:103)
...
Caused by: org.gradle.api.GradleScriptException: A problem occurred evaluating project ':main'.
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
...
Caused by: java.lang.NoClassDefFoundError: com/android/build/api/extension/AndroidComponentsExtension
at androidx.navigation.safeargs.gradle.SafeArgsPlugin.apply(SafeArgsPlugin.kt:73)
at androidx.navigation.safeargs.gradle.SafeArgsPlugin.apply(SafeArgsPlugin.kt:42)
...
Caused by: java.lang.ClassNotFoundException: com.android.build.api.extension.AndroidComponentsExtension
这意味着我无法运行我的应用程序,我需要降级 AGP 7.0 才能再次运行。如何解决此问题并升级到 Android Gradle Plugin 7.1.0?
原文由 ianhanniballake 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新导航安全参数
这些行是要看的重要行:
这表明错误来自 Navigation Safe Args 插件。
根据 Android Gradle Plugin 7.1.0 发行说明:
由于 Navigation 2.4.1 现在可用,您可以升级到该版本的 Navigation 以获得修复:
请注意,您应始终使用与 Safe Args 插件相同版本的 Navigation 库(即,您的应用程序也应使用 Navigation 2.4.1):您不应尝试将 Navigation 2.4.1+ Safe Args 插件与更早版本一起使用导航版本(例如 2.3.5)。
关于 Firebase Perf 插件的注意事项
请注意,您在使用时可能会看到同样的错误:
带有
idea.log
的状态:根据 Firebase Perf 插件 1.4.1 发行说明:
所以你应该升级到 1.4.1: