Google Map API构建失败报NoClassDefFoundError错误如何解决?
报错信息
* Exception is: java.lang.NoClassDefFoundError: com/android/build/api/variant/AndroidComponentsExtension at com.google.android.libraries.mapsplatform.secrets_gradle_plugin.SecretsPlugin.apply(SecretsPlugin.kt:43) at com.google.android.libraries.mapsplatform.secrets_gradle_plugin.SecretsPlugin.apply(SecretsPlugin.kt:33)
错误产生原因
该报错的核心诱因是Google Maps Secrets Gradle插件和当前项目的Android Gradle Plugin(AGP)版本不兼容:
AndroidComponentsExtension是AGP 7.0及以上版本才正式推出的API,若项目当前使用的AGP版本低于7.0,运行时就会找不到对应类,触发类定义未找到异常。- 若项目AGP版本符合要求,也可能是你引入的Secrets Gradle插件版本过高,其要求的最低AGP版本超出了你项目当前AGP的适配范围。
可行修复方案
- 方案1:升级项目AGP版本到7.0及以上
打开项目根目录的build.gradle文件,将AGP依赖的版本号修改为7.0以上,同时调整gradle-wrapper.properties文件中的Gradle版本到和AGP匹配的范围(AGP 7.0对应Gradle 7.0及以上版本),同步项目后重新构建即可。 - 方案2:降级Google Secrets Gradle插件到适配低版本AGP的版本
如果你暂时无法升级项目AGP版本,可以将Secrets Gradle插件的版本降到1.3.0及以下,该版本是最后一个兼容AGP 4.2.x的版本,修改版本号后同步项目重新构建即可。 - 验证补充:确认插件的引入配置无拼写错误,项目根目录
build.gradle的插件声明、module级别的插件应用声明不存在版本号填错、标识写错的问题。
内容的提问来源于stack exchange,提问作者Klein_Moretti2001
相关产品推荐
相关产品推荐

