Android Studio运行项目报OneSignal Gradle插件找不到错误求助
报错根因
抛出Plugin with id 'com.onesignal.androidsdk.GradleProjectPlugin' not found错误的核心原因是Gradle插件类路径配置位置错误。
Gradle规定所有插件的classpath依赖必须声明在项目根目录build.gradle的buildscript.dependencies代码块中,你当前把OneSignal插件、google-services插件的classpath依赖写在了app模块级build.gradle的普通dependencies块里,Gradle在解析模块声明的插件时,根本读取不到模块dependencies里声明的插件类路径,自然无法找到对应ID的插件。
修复步骤
- 第一步:打开项目根目录下的
build.gradle(不是app模块目录下的配置文件),补充buildscript块的仓库和插件依赖配置,参考如下:
buildscript { repositories { google() mavenCentral() gradlePluginPortal() // 必须配置该仓库,否则无法拉取OneSignal官方Gradle插件 } dependencies { classpath "com.android.tools.build:gradle:对应你当前项目的AGP版本" // 将原模块配置里的两个插件classpath挪到此处,OneSignal插件建议升级到0.12.10稳定版,和你使用的3.15.1版本OneSignal SDK兼容性更好 classpath "gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.10" classpath "com.google.gms:google-services:4.2.0" } } allprojects { repositories { google() mavenCentral() } }
- 第二步:回到app模块的
build.gradle文件,删除dependencies块中错误放置的三行classpath配置:
// 以下三行全部从模块dependencies中删除 classpath "gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.11.0" //classpath "gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.1, 0.99.99]" classpath "com.google.gms:google-services:4.2.0"
- 第三步:确认模块build.gradle的插件声明顺序,OneSignal插件必须在
com.android.application声明之后、com.google.gms.google-services声明之前,你当前的位置是正确的,无需调整:
// 文件顶部插件声明顺序正确,不用改 apply plugin: "com.android.application" apply from: "../utils.gradle" apply plugin: "com.onesignal.androidsdk.GradleProjectPlugin" // ... 中间保留原有的android配置块、dependencies依赖块 // 文件末尾的google-services插件声明位置正确,不用改 apply plugin: "com.google.gms.google-services"
- 第四步:配置修改完成后,点击Android Studio菜单栏
File - Invalidate Caches,勾选清除缓存选项后重启IDE,再重新同步Gradle即可正常构建。
注意事项
不要使用动态版本号声明OneSignal插件依赖,固定具体版本号可以避免后续插件自动升级带来的构建不稳定问题。
内容的提问来源于stack exchange,提问作者Danish
相关产品推荐
相关产品推荐

