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




