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

执行ionic cordova build android遇多com.google.android.gms.license库冲突复现求解

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

兄弟,我太懂这种删了又自动冒出来的依赖冲突有多闹心了!你遇到的这个Error: more than one library with package name com.google.android.gms.license,本质是多个Cordova插件偷偷引入了重复或版本不一致的Google Play服务相关依赖,手动删除后构建流程又会自动把依赖加回来,给你几个实用的解决办法:

  • 统一全局Google Play服务依赖版本
    这是最省心的方案,直接在项目根目录的build.gradle(不是app模块下的那个)里添加全局版本强制规则,让所有插件都用同一个版本的gms库:

    allprojects {
        repositories {
            google()
            jcenter()
        }
        // 新增这段全局依赖控制
        configurations.all {
            resolutionStrategy {
                // 根据你实际用到的gms组件调整版本号,这里举个例子
                force 'com.google.android.gms:play-services-base:17.6.0'
                force 'com.google.android.gms:play-services-maps:17.0.1'
                force 'com.google.android.gms:play-services-ads:19.8.0'
                // license包是附属在这些核心gms包下的,统一核心版本就能解决重复问题
            }
        }
    }
    

    这样不管哪个插件想引入其他版本的gms库,都会被强制替换成你指定的版本,从根源上杜绝重复包。

  • 检查并更新冲突的Cordova插件
    先执行cordova plugin list看看已安装的插件,重点排查和Google服务相关的插件(比如地图、推送类插件),这些插件很可能是冲突的源头:

    • 优先把这些插件更新到最新版本,新版本通常会修复依赖声明的问题;
    • 如果更新后还是不行,可以找到插件目录下的plugin.xml,修改它的<framework>依赖声明,给gms库加上明确的版本号,或者直接排除重复的license模块(不过这种方法每次插件更新后要重新改,不如全局控制方便)。
  • 彻底清理构建缓存
    有时候旧缓存会残留冲突的依赖,执行以下命令清理干净:

    ionic cordova clean android
    rm -rf platforms/android/.gradle
    rm -rf ~/.gradle/caches
    

    清理完再重新执行ionic cordova build android试试。

  • 用专用插件统一版本
    如果上面的方法都嫌麻烦,可以试试cordova-android-play-services-gradle-release这个专门解决此类问题的插件,安装时指定你要的gms版本:

    cordova plugin add cordova-android-play-services-gradle-release --variable PLAY_SERVICES_VERSION=17.6.0
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:30:30