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

使用NativeScript构建Android项目时出现重复GMS License库错误

解决NativeScript Android构建时的com.google.android.gms.license多包冲突问题

你遇到的这个错误,本质是两个推送类插件依赖的Google Play服务版本不统一导致的——nativescript-onesignal和nativescript-push-notifications都依赖了Google Play服务的相关模块,加上你App.gradle里用了+号自动拉取最新版本,Gradle解析时就会拉取多个版本的license库,引发冲突。下面是具体的解决步骤:


1. 统一Google Play服务版本号

首先要把所有Google Play服务相关依赖的版本固定下来,避免+号带来的版本差异:
打开项目根目录的App.gradle,先在buildscript块里定义统一的版本变量,再替换所有依赖里的+号:

buildscript {
    ext {
        // 选一个兼容你现有插件的稳定版本,17.0.0适配多数旧版NativeScript插件
        googlePlayServicesVersion = "17.0.0"
    }
    // 保留你原有的buildscript内容
}

dependencies {
    compile 'com.onesignal:OneSignal:3.+@aar'
    // 用统一版本替换之前的+号
    compile "com.google.android.gms:play-services-gcm:${googlePlayServicesVersion}"
    compile "com.google.android.gms:play-services-location:${googlePlayServicesVersion}"
    // 保留你原有的其他依赖
}

2. 移除功能重叠的推送插件(推荐)

你同时引入了两个推送插件,功能完全重叠,这是冲突的根源之一。建议只保留一个:

  • 如果用OneSignal:卸载原生推送插件
    tns plugin remove nativescript-push-notifications
    
    之后记得从App.gradle里移除play-services-gcm相关依赖(OneSignal已经内置了必要的推送依赖)。
  • 如果用原生推送:卸载OneSignal插件
    tns plugin remove nativescript-onesignal
    

3. 清理缓存后重新构建

修改配置后,清理NativeScript和Gradle的缓存,避免旧依赖残留:

tns platform remove android
tns platform add android
tns clean
tns build android

额外提醒

你的tns-android版本是3.3.1,属于比较老旧的版本,要确保所选插件版本和它兼容——比如nativescript-onesignal@1.0.7是否适配这个NativeScript版本,建议查看插件的说明文档确认。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:34:35