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:对话框关闭而不调用关闭 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01