PhoneGap Build中Google Plus与推送通知插件冲突及版本问题求助
解决Cordova中Google Plus插件与推送通知插件的兼容问题
刚碰到过类似的坑,咱们来一步步拆解解决:
第一个问题:v5.2.1版本构建失败(报错Failed to apply plugin [class 'com.google.gms.googleservices.GoogleServicesPlugin'] > For input string: "+")
这个错误核心是Google Services插件和Google Plus插件依赖的Play Services库版本不兼容。v5.2.1的cordova-plugin-googleplus依赖的旧版Play Services库,和推送插件依赖的Google Services插件在解析版本号时冲突,把版本号里的"+"当成了非法输入。
修复方法:强制统一Play Services版本
你可以在config.xml里添加cordova-android-play-services-gradle-release插件,强制指定所有插件依赖的Play Services库版本,彻底解决版本冲突:
<plugin name="cordova-android-play-services-gradle-release" spec="^4.0.0"> <variable name="PLAY_SERVICES_VERSION" value="17.0.0" /> </plugin>
添加后保留cordova-plugin-googleplus v5.2.1,重新构建项目就行。版本号可以根据你推送插件的需求微调,选一个双方都兼容的稳定版本(比如17.x系列就挺稳)。
第二个问题:v5.3.0版本构建成功但推送时崩溃
v5.3.0的Google Plus插件更新了依赖的Play Services库,但和你的推送插件初始化逻辑、权限配置可能不匹配,导致推送触发时出现运行时崩溃。
排查修复步骤:
- 核对权限配置:确保
AndroidManifest.xml里有推送必需的权限:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> - 抓崩溃日志:用Android Studio的Logcat看看崩溃时的堆栈信息,重点看
AndroidRuntime的报错,一般能直接定位到冲突的类或者初始化步骤。 - 调整插件初始化顺序:试试在推送插件之前初始化Google Plus插件(或者反过来),Cordova插件的加载顺序有时候会影响依赖库的初始化逻辑。
- 降级推送插件:如果当前推送插件版本太新,和v5.3.0不兼容,找一个推送插件的稳定旧版本,凑出一套双方都兼容的版本组合。
个人推荐方案
优先用第一个问题的修复方法——v5.2.1的Google Plus插件+强制统一Play Services版本。v5.2.1是经过大量验证的稳定版本,只要解决了版本冲突,基本不会有后续的崩溃问题,比折腾v5.3.0的兼容性要省心。
内容的提问来源于stack exchange,提问作者sqlchild
相关产品推荐
相关产品推荐

