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

编译SDK版本21的项目添加Google Play Services及OneSignal遇报错求助

解决CompileSdkVersion 21下添加Google Play Services/OneSignal的资源错误问题

问题分析

你的核心矛盾是必须固定compileSdkVersion 21,但面临两个关键冲突:

  • 完整的play-services:10.0.1依赖包含了仅在API 23+才引入的Material风格资源(比如android:TextAppearance.Material.Widget.Button.Inverse),导致aapt编译时找不到这些资源。
  • Google Services插件3.0.0要求Play Services最低版本为9.0.0,无法降级到更低版本来规避资源问题。

解决方案

我们可以通过拆分Play Services依赖+选择兼容的OneSignal版本来解决,完全不需要修改compileSdkVersion:

1. 先修复Gradle语法错误

你的应用级Gradle文件存在语法漏洞:defaultConfig块缺少闭合的},这会导致Gradle解析失败,先补上这个关键的闭合符号。

2. 替换完整Play Services依赖为拆分模块

不要引入整个play-services大包,只添加你实际需要的功能模块(比如OneSignal推送依赖的GCM模块),选择满足Google Services插件要求的最低版本9.0.0——这个版本的拆分模块不会依赖API 23+的资源。

3. 指定兼容的OneSignal版本

选择与Play Services 9.0.0兼容的OneSignal版本,比如3.6.5,这个版本明确支持较低的compileSdk版本。

修改后的应用级Gradle文件

apply plugin: 'com.android.application'
repositories {
    mavenCentral()
    maven { url 'https://maven.google.com' }
}
android {
    compileSdkVersion 21
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 15
        targetSdkVersion 21
        versionCode 11
        versionName "1.1"
    } // 补上缺失的闭合大括号
    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        // 仅引入推送所需的GCM模块,而非完整的play-services包
        compile 'com.google.android.gms:play-services-gcm:9.0.0'
        // 使用兼容compileSdk 21的OneSignal版本
        compile 'com.onesignal:OneSignal:3.6.5'
    }
}
apply plugin: 'com.google.gms.google-services'

方案可行性说明

  • 拆分的Play Services模块(如play-services-gcm)只包含对应功能的代码,不会引入高版本SDK专属的UI资源,从根源避免了找不到资源的编译错误。
  • OneSignal 3.6.5版本与Play Services 9.0.0完全兼容,同时适配compileSdkVersion 21,能满足你的推送功能需求。
  • Google Services插件3.0.0与Play Services 9.0.0版本匹配,不会触发版本过低的报错。

如果你的项目还需要Play Services的其他功能(比如位置、地图),只需添加对应的拆分模块即可,例如:

// 示例:添加位置服务模块
compile 'com.google.android.gms:play-services-location:9.0.0'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:30:01