PhoneGap-push-plugin与request-location-accuracy插件冲突问题求助
解决PhoneGap-Push-Plugin与Cordova-plugin-request-location-accuracy的依赖冲突问题
这个报错的核心原因是两个插件依赖了不同版本的Google Play Services库,打包时出现了重复的类定义(Lcom/google/android/gms/iid/zzc),进而触发了Dex多文件冲突。下面是具体的解决步骤:
1. 统一全局Google Play Services版本
在你的config.xml中添加全局偏好设置,强制所有插件使用同一个版本的Google Play Services:
<preference name="android-google-play-services-version" value="17.0.0" />
选择版本时,建议挑一个能同时兼容两个插件的稳定版本(比如17.x系列,你也可以根据插件官方文档调整到更合适的版本)。
2. 单独指定每个插件的依赖版本
如果全局设置不生效,可以给每个插件单独配置依赖的Google Play Services版本,确保两者完全一致:
<!-- 配置phonegap-plugin-push --> <plugin name="phonegap-plugin-push" source="npm" spec="1.8.4"> <variable name="ANDROID_GOOGLE_PLAY_SERVICES_VERSION" value="17.0.0" /> </plugin> <!-- 配置cordova-plugin-request-location-accuracy --> <plugin name="cordova-plugin-request-location-accuracy" spec="*"> <variable name="PLAY_SERVICES_LOCATION_VERSION" value="17.0.0" /> </plugin>
3. 升级phonegap-plugin-push版本
你当前使用的phonegap-plugin-push 1.8.4是比较老旧的版本,建议升级到最新的稳定版(比如v2.x及以上),新版本通常会优化依赖管理逻辑,能大幅降低这类冲突的概率。
4. 清理PhoneGap Build缓存
有时候构建缓存会残留旧的依赖文件,导致冲突无法消除。你可以在PhoneGap Build的项目设置里找到清理缓存的选项,清理完成后重新构建APK即可。
内容的提问来源于stack exchange,提问作者Maheshvirus
相关产品推荐
相关产品推荐

