Android Studio导入旧项目Gradle同步报InvalidPluginRequestException错误
问题原因
错误信息Caused by: org.gradle.plugin.management.internal.InvalidPluginRequestException: Plugin 'com.android.application' is already on the script classpath.出现的核心原因是:
你当前使用的Android Gradle Plugin(AGP)3.0.1版本属于较旧版本,已经在根目录build.gradle的buildscript classpath中全局引入了插件类,而你在app模块的build.gradle中使用了plugins{}块重复声明com.android.application插件,触发了重复加载冲突,Android Studio版本升级后默认的插件加载规则更严格,所以之前能运行的项目现在同步失败。
解决方案
执行以下步骤即可修复:
- 第一步:修改
build.gradle (:app)文件的插件声明部分,删除原有plugins{}块,替换为旧版本的apply plugin写法:
// 删掉原来的plugins块,替换为下面两行 apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services'
- 第二步:检查gradle版本适配:打开
gradle/wrapper/gradle-wrapper.properties文件,确认distributionUrl配置为AGP 3.0.1匹配的版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
- 第三步:清理缓存重新同步:点击Android Studio顶部菜单栏的
File -> Invalidate Caches / Restart,重启后再点击Gradle同步按钮即可完成修复。
可选优化(非必须)
如果想使用新版的plugins{}声明方式,可以将AGP版本升级到7.0+,对应Gradle版本升级到7.0+,同时调整根目录build.gradle的配置适配新版规则即可。
内容的提问来源于stack exchange,提问作者Sumit Monapara
相关产品推荐
相关产品推荐

