升级Android Gradle插件7.1后无法加载类AndroidComponentsExtension [英] 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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆