Ionic3更新cli至3.20.0后编译APK报错:compileDebugJavaWithJavac失败
解决Ionic CLI升级后APK构建失败的NotificationCompat.Builder错误
我之前也碰到过一模一样的问题,其实这个错误的核心原因很明确:phonegap-plugin-push插件里的代码调用了NotificationCompat.Builder(Context, String)这个双参数构造器,但你的项目里的Android Support Library版本太低,不支持这个需要通知渠道ID的构造方法——而CLI从3.19.0升级到3.20.0后,间接改变了插件依赖或者项目的默认配置,导致这个不兼容问题暴露了出来。
下面是亲测有效的解决步骤:
步骤1:更新或指定兼容的push插件版本
先卸载现有的push插件,再安装一个适配通知渠道构造器的版本(比如v2.3.0及以上,这个版本能很好兼容Ionic 3和新的support库):
ionic cordova plugin remove phonegap-plugin-push ionic cordova plugin add phonegap-plugin-push@2.3.0 --variable SENDER_ID="你的FCM发送者ID"
步骤2:强制指定Android Support Library版本
在项目根目录下创建或修改build-extras.gradle文件(没有的话直接新建),添加以下内容,强制使用支持通知渠道的support库版本(推荐27.1.1,稳定性拉满):
configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.support') { if (!requested.name.startsWith("multidex")) { details.useVersion '27.1.1' } } } }
步骤3:清理并重新构建项目
最后清理项目缓存,重新添加Android平台并执行构建:
ionic cordova platform remove android ionic cordova platform add android@7.1.4 # 这个版本和Ionic 3的兼容性极佳 ionic cordova clean android ionic cordova build android
走完这些步骤,应该就能解决构造器参数不匹配的问题,顺利打出APK了。
内容的提问来源于stack exchange,提问作者Karan Verma
相关产品推荐
相关产品推荐

