更新导航安全参数
这些行是需要查看的重要行:
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)
这表明错误来自于导航安全参数插件 https://developer.android.com/guide/navigation/navigation-pass-data#Safe-args.
根据Android Gradle 插件 7.1.0 发行说明 https://developer.android.com/studio/releases/gradle-plugin#navigation_safe_args_compatibility:
Navigation Safe Args Gradle 插件依赖的 AGP API 已被删除。AGP 7.1 不适用于 Navigation Safe Args 版本 2.4.0-rc1 或 2.4.0,但适用于版本 2.5.0-alpha01 和 2.4.1。同时,作为一种解决方法,您可以将 AGP 7.1 与 Navigation Safe Args 的快照版本(Navigation 2.5.0-SNAPSHOT)结合使用。要使用快照构建,请按照快照指令 https://androidx.dev/构建 ID #8054565。
As 导航2.4.1 https://developer.android.com/jetpack/androidx/releases/navigation#2.4.1现已可用,您可以升级到该版本的导航来获得修复:
向后移植自导航2.5.0-alpha01 https://developer.android.com/jetpack/androidx/releases/navigation#2.5.0-alpha01:Safe Args 现在依赖于 Android Gradle 插件版本 7.0.4。这意味着 Navigation Safe Args 将不再与 7.0 之前的 Android Studio 版本兼容,但现在与 Android Gradle Plugin 7.1.0 及更高版本兼容。
dependencies {
classpath 'com.android.tools.build:gradle:7.1.0'
// Update this line to use 2.4.1
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.4.1"
}
请注意,您应始终使用与 Safe Args 插件相同版本的导航库(即,您的应用程序还应使用 Navigation 2.4.1):您不应尝试将 Navigation 2.4.1+ Safe Args 插件与早期版本一起使用导航的版本(例如2.3.5)。
关于 Firebase Perf 插件的注意事项
请注意,当您使用以下命令时,您可能会看到同样的错误:
classpath "com.google.firebase:perf-plugin:1.4.0"
With an idea.log
其中指出:
Caused by: java.lang.NoClassDefFoundError: com/android/build/api/extension/AndroidComponentsExtension
at com.google.firebase.perf.plugin.FirebasePerfClassVisitorFactory.registerForProject(FirebasePerfClassVisitorFactory.java:54)
at com.google.firebase.perf.plugin.FirebasePerfPlugin.perform(FirebasePerfPlugin.java:145)
at com.google.firebase.perf.plugin.FirebasePerfPlugin.lambda$apply$0(FirebasePerfPlugin.java:107)
根据Firebase Perf 插件 1.4.1 发行说明 https://firebase.google.com/support/release-notes/android#performance_gradle_plugin_v1-4-1:
迁移出已弃用的 Android Gradle 插件 API。
所以你应该升级到 1.4.1:
classpath "com.google.firebase:perf-plugin:1.4.1"