Unable to load class AndroidComponentsExtension after upgrading the Android Gradle Plugin 7.1(升级Android Gradle插件7.1后无法加载类AndroidComponentsExtension)
问题描述
我最近下载了Android Studio Bumblebee,它很有帮助地询问我是否想升级到Android Studio Bumblebee附带的Android Gradle插件7.1.0版本。
升级后,我收到生成错误:
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插件7.1.0?
推荐答案
更新导航安全参数
这些行是需要查看的重要行:
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)
这表示错误来自Navigation Safe Args plugin。
根据Android Gradle Plugin 7.1.0 release notes:
导航安全参数Gradle插件所依赖的AGP API已删除。AGP 7.1不适用于导航安全参数版本2.4.0-RC1或2.4.0,但适用于版本2.5.0-alpha01和2.4.1。同时,作为一种解决办法,您可以将AGP 7.1与导航安全参数、导航2.5.0-快照的快照版本配合使用。若要使用快照生成,请遵循内部版本ID为#8054565的snapshot instructions。由于Navigation 2.4.1现已可用,您可以升级到该版本的导航以获得修复:
回传自Navigation
2.5.0-alpha01
:安全参数现在依赖于Android Gradle插件版本7.0.4。这意味着导航安全参数将不再与Android Studio 7.0之前的版本兼容,但现在与Android Gradle插件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"
}
请注意,您应始终使用与安全参数插件相同版本的导航库(即,您的应用程序也应使用导航2.4.1):您不应尝试将导航2.4.1+安全参数插件与较早版本的导航(如2.3.5)配合使用。
Firebase Perf插件说明
请注意,您在使用时可能会看到相同的错误:
classpath "com.google.firebase:perf-plugin:1.4.0"
具有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 Plugin 1.4.1 Release Notes:
已从不推荐使用的Android Gradle插件API迁移。
因此您应该升级到1.4.1:
classpath "com.google.firebase:perf-plugin:1.4.1"
这篇关于升级Android Gradle插件7.1后无法加载类AndroidComponentsExtension的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:升级Android Gradle插件7.1后无法加载类AndroidComponentsExtension
- android 4中的android RadioButton问题 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- Android - 拆分 Drawable 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
- 想使用ViewPager,无法识别android.support.*? 2022-01-01