You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android集成OneSignal遇Gradle同步错误:无法解析play-services依赖

解决OneSignal集成时Gradle依赖解析错误

你遇到的Could not find any version that matches com.google.android.gms:play-services:15.+错误,是旧版OneSignal插件配置与Google服务依赖结构不兼容导致的,下面是具体的排查和修复方案:

问题根源

  1. 废弃的聚合依赖:com.google.android.gms:play-services是Google早期的聚合依赖包,15.x版本之后Google将其拆分为多个独立子依赖(如play-services-base、play-services-messaging),且不再更新这个聚合包的版本,所以15.+的版本范围找不到有效匹配。
  2. 老旧的OneSignal插件:你使用的0.8.1版本OneSignal Gradle插件过于陈旧,它仍在尝试引用已被废弃的聚合依赖,对新的Google仓库支持也不完善。
  3. 仓库优先级问题:项目级Gradle配置中google()仓库没有排在最前面,Gradle可能从其他仓库优先查找,而这些仓库未必包含所需的Google服务依赖版本。

修复步骤

1. 更新OneSignal Gradle插件版本

修改项目级build.gradle,将OneSignal插件升级到兼容的较新版本(比如0.14.0,适配了Google拆分后的依赖结构):

buildscript {
    repositories {
        google() // 移到最前面,优先获取Google官方依赖
        maven { url 'https://plugins.gradle.org/m2/' }
        maven { url 'https://maven.fabric.io/public' }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
        classpath 'com.google.gms:google-services:3.2.1'
        classpath 'io.fabric.tools:gradle:1.24.4'
        // 升级OneSignal插件版本
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.14.0'
    }
}

2. 调整项目仓库顺序

确保allprojects中的google()仓库排在首位,让Gradle优先从Google官方仓库获取依赖:

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'http://jhoobin.abroid.com/repo/' }
        maven { url "https://jitpack.io" }
        maven { url "https://maven.google.com" } // 此仓库与google()等价,可保留或移除
    }
}

3. 模块级依赖配置(app/build.gradle)

使用OneSignal推荐的依赖声明方式,避免手动引用废弃的聚合依赖:

apply plugin: 'com.android.application'
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

android {
    // 你的Android编译、签名等配置
}

dependencies {
    // 你的其他项目依赖
    // 使用版本范围让插件自动管理兼容的依赖
    implementation 'com.onesignal:OneSignal:[4.0.0, 4.99.99]'
}

// 若使用Firebase服务,最后应用google-services插件
apply plugin: 'com.google.gms.google-services'

额外注意事项

  • 确保Gradle Wrapper版本与Android Gradle插件兼容(com.android.tools.build:gradle:3.0.0对应Gradle Wrapper 4.1版本左右),版本不匹配也可能引发同步问题。
  • 同步前建议点击Android Studio的File -> Invalidate Caches / Restart,清除缓存后再尝试同步。

内容的提问来源于stack exchange,提问作者amirhesni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:10:53