因instabug-reactnative引发Play Console警告:升级Play Core至Android 14兼容版
问题背景
Play Console收到警告:
Update your Play Core Maven dependency to an Android 14 compatible version! Your current Play Core library is incompatible with targetSdkVersion 34 (Android 14), which introduces a backwards-incompatible change to broadcast receivers to improve user security. As a reminder, from August 31, Google Play requires all new app releases to target Android 14. Update to the latest Play Core library version dependency to avoid app crashes
依赖树显示com.instabug.library:instabug-survey:11.6.0间接引入了不兼容的com.google.android.play:core:1.10.2,升级Instabug至最新版本后问题仍存在。
解决方案:强制替换Play Core依赖版本
无需更换第三方包,通过Gradle的依赖解析策略强制使用兼容Android 14的Play Core版本:
1. 配置强制依赖版本
在app模块的build.gradle(Groovy)或build.gradle.kts(Kotlin)中添加以下配置:
Groovy 语法
configurations.all { resolutionStrategy { // 替换为官方兼容Android14的最新版本,如1.12.0或更高 force 'com.google.android.play:core:1.12.0' } }
Kotlin DSL 语法
configurations.all { resolutionStrategy.force("com.google.android.play:core:1.12.0") }
2. 验证配置生效
执行以下命令检查Play Core的依赖版本是否已被替换:
./gradlew app:dependencies | grep "com.google.android.play:core"
确认输出的版本为你指定的兼容版本即可。
备选方案:排除旧依赖后手动添加兼容版本
如果强制替换出现兼容性冲突,可以先排除Instabug中的旧版Play Core,再手动添加兼容版本:
Groovy 语法
dependencies { implementation('com.instabug.library:instabug-survey:11.6.0') { exclude group: 'com.google.android.play', module: 'core' } implementation 'com.google.android.play:core:1.12.0' }
Kotlin DSL 语法
dependencies { implementation("com.instabug.library:instabug-survey:11.6.0") { exclude(group = "com.google.android.play", module = "core") } implementation("com.google.android.play:core:1.12.0") }
原理说明
Gradle的resolutionStrategy.force会覆盖所有依赖路径中该模块的版本,强制使用你指定的兼容版本,从而绕过第三方库未更新依赖的问题,满足Play Console的Android 14适配要求。
内容的提问来源于stack exchange,提问作者Vinay Gregory John

