当前位置: 首页 > 知识库问答 >
问题:

升级Android Gradle插件7.1后无法加载AndroidComponentsExtension类

欧金鹏
2023-03-14

我最近下载了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插件7.1.0?

共有1个答案

怀展
2023-03-14

更新导航安全参数

以下是需要注意的重点:

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)

这表明错误来自导航安全Args插件。

根据Android Gradle插件7.1.0发行说明:

导航安全Args 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-SNAPSHOT。若要使用快照生成,请按照快照说明使用生成id#8054565。

因此,在导航2.5.0-alpha01或导航2.4.1发布之前,您需要通过更新根build.gradle文件来使用导航的快照构建来拉取快照存储库:

repositories {
    google()
    mavenCentral()

    // Add this line
    maven { url 'https://androidx.dev/snapshots/builds/8054565/artifacts/repository' }
}

然后更新您的Safe Args插件以使用2.5.0-SNAPSHOT版本:

dependencies {
    classpath 'com.android.tools.build:gradle:7.1.0'

    // Update this line
    classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.0-SNAPSHOT"
}

虽然从技术上讲,您应该始终使用与Safe Args插件相同版本的导航库,但在这种情况下,仅更新Safe Args插件就足以解决问题,并让您继续使用AGP 7.1.0。

关于Firebase Perf插件的注意事项

classpath "com.google.firebase:perf-plugin:1.4.0"

带着的想法。日志,其中说明:

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)

从弃用的Android Gradle插件API迁移。

所以你应该升级到1.4.1:

classpath "com.google.firebase:perf-plugin:1.4.1"
 类似资料:
  • 我正在尝试在一个相当旧的ubuntu xenial版本上将R从3.4.4升级到3.6.0。 我遵循了这些指示:这里 以下是我采取的步骤: sudo apt-get删除r-base-dev echo'debhttps://cloud.r-project.org/bin/linux/ubuntutruy-cran35/'|sudo ted-a /etc/apt/sources.list sudo ap

  • 版本:3.8.2.201610040743平台:Eclipse Neon.1(4.6.1)这是我的版本插件org.springsource.ide.eclipse.commons.gettingstarted无法加载类org.springsource.ide.eclipse.commons.gettingstarted.dashboard.欢迎仪表板

  • 问题内容: 我是android开发的新手我的日食工作正常。但是现在当我开始一个新项目时,它给出了一个错误问题打开向导无法打开所选向导 详细错误消息是 我也不能运行现有的Android项目。但是我可以启动一个新的Java项目并运行。为什么会这样 问题答案: 如果尚未添加ADT,请执行以下步骤。 帮助->添加新软件->添加。 在选项中写入ADT 如果您已经在计算机中安装了ADT,则在其中添加其路径,例

  • 我的Eclipse停顿了,所以我关闭了它(通常情况下,我没有发送任何kill信号或其他任何东西,编辑器有漏洞,但菜单仍然工作,所以我简单地从菜单中退出它)。 然而,当我重新打开eclipse时,我遇到了一个问题: 插件org.python.pydev无法加载类org.python.pydev.editor.pyedit。 我正在使用Eclipse Kepler Release 2版本ID:2014

  • 我正在尝试用SQLAlchemy连接到Postgres数据库。我已经安装了Psycopg2。但是,我得到错误。如何配置SQLAlchemy以连接到PostgreSQL?

  • 我刚刚将Intellij从2019.2.x升级到2019.3,但在我的Java项目中发现了以下Maven插件错误。 有人知道如何调试并更好地修复它吗? 更新:我现在已经设法解决了这个问题。我想问题是,虽然在我升级的时候,我连接到了互联网,但我没有连接到我公司的VPN(因为那天我在家工作),这可能导致了对我公司的NEXUS回购的查找失败。后来,当我连接到VPN时,Maven由于某种原因无法重新同步插