升级cordova-android到10.1.1后Ionic安卓release构建报GoogleServicesTask错误
问题根因
cordova-android 10.1.1默认使用Gradle 7.1.1版本,该版本对插件的注解校验规则更严格,低于4.3.10版本的google-services插件没有对应字段的getter方法,会触发校验失败。你之前配置的版本未生效,是因为项目引入的cordova-plugin-fcm-with-dependecy-updated等插件内部硬编码了google-services版本,覆盖了全局配置。
可行解决方案
步骤1:清理残留缓存
首先删除旧的构建产物、平台和插件缓存,避免旧配置干扰:
ionic cordova platform rm android rm -rf node_modules plugins www npm install
步骤2:调整config.xml配置
修改config.xml中的相关配置,关闭cordova默认加载的google-services插件,避免版本冲突:
<!-- 原有AndroidX配置保留 --> <preference name="AndroidXEnabled" value="true" /> <!-- 关闭默认的google-services插件加载 --> <preference name="GradlePluginGoogleServicesEnabled" value="false" /> <!-- 引入自定义gradle配置 --> <preference name="GradleExtraPath" value="build-extras.gradle" />
步骤3:添加自定义Gradle配置
在项目根目录新建build-extras.gradle文件,写入兼容Gradle7的google-services版本配置:
buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.google.gms:google-services:4.3.15' } } allprojects { repositories { google() mavenCentral() } } // 强制应用google-services插件 apply plugin: 'com.google.gms.google-services'
步骤4:升级FCM插件(核心修复步骤)
你当前使用的FCM插件版本过旧,依赖的firebase组件和新的google-services插件不兼容,升级到适配API30的版本:
cordova plugin rm cordova-plugin-fcm-with-dependecy-updated cordova plugin add cordova-plugin-fcm-with-dependecy-updated@7.8.0 \ --variable FCM_VERSION=23.1.2 \ --variable GOOGLE_SERVICES_VERSION=4.3.15
步骤5:重新构建
重新添加安卓平台并执行构建:
ionic cordova platform add android@10.1.1 ionic cordova build android --prod --release
备选方案
如果以上操作后仍有问题,可以将cordova-android降级到10.0.1版本,该版本使用Gradle 6.x,不会触发本次的注解校验规则,同时也满足Android API 30的适配要求:
ionic cordova platform rm android ionic cordova platform add android@10.0.1
内容的提问来源于stack exchange,提问作者dsymiller
相关产品推荐
相关产品推荐

