You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ionic Android构建报错:com.google.android.gms.license包冲突

解决Ionic Cordova Android构建错误:Execution failed for task ':processDebugResources'(重复包名com.google.android.gms.license

这个问题我之前帮同事排查过好几次,本质是你的项目里有多个第三方插件引入了重复的Google Play Services License模块,导致Android构建时资源合并冲突。试试下面这几个解决方案,按顺序尝试通常能搞定:

  • 统一Google Play Services依赖版本
    大部分情况是不同插件依赖了不同版本的GMS库,导致版本冲突。你可以在项目根目录的根级build.gradle(不是platforms/android/app/下的那个)里添加强制统一版本的配置,让所有插件都用同一个稳定版本的GMS:

    subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.google.android.gms'
                        && !details.requested.name.contains('multidex')) {
                    details.useVersion '17.0.0' // 建议选一个兼容你所有插件的稳定版本,可根据实际调整
                }
            }
        }
    }
    
  • 排查并调整冲突插件的依赖
    先列出所有已安装的Cordova插件,看看哪些插件会依赖GMS(比如地图、推送类插件):

    cordova plugin list
    

    找到这类插件后,去查它们的官方文档,看有没有指定依赖版本的参数。比如使用cordova-plugin-firebase时,可在config.xml里指定GMS版本来避免冲突:

    <plugin name="cordova-plugin-firebase" spec="你的插件版本">
        <variable name="PLAY_SERVICES_AUTH_VERSION" value="17.0.0" />
    </plugin>
    
  • 清理构建缓存
    有时候旧的构建缓存会导致奇怪的冲突,先彻底清理一遍:

    ionic cordova clean android
    rm -rf platforms/android/build
    rm -rf plugins/android.json
    

    清理完成后再重新构建:

    ionic cordova run android
    
  • 手动排除重复依赖
    如果知道是哪个插件引入了重复的license模块,可以找到该插件的build.gradle文件(通常在plugins/[插件名]/目录下),在依赖声明里排除重复的模块:

    dependencies {
        implementation('com.google.android.gms:play-services-xxx:对应版本') {
            exclude group: 'com.google.android.gms', module: 'license'
        }
    }
    

如果以上方案都没解决,你可以把cordova plugin list的输出贴出来,这样能更精准地定位冲突的插件~

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

火山引擎 最新活动