You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移Play Core库至新版后应用内更新启动崩溃求助

解决Play Core迁移后NoSuchMethodError崩溃问题

问题根源

崩溃日志显示AppUpdateManager类找不到getAppUpdateInfo()方法,本质是新旧版本依赖冲突:旧版com.google.android.play:core:1.10.3与新版模块化依赖app-update-ktx:2.1.0同时存在,导致运行时加载了不兼容的类文件。

修复步骤

1. 彻底移除旧版Core依赖

检查项目的Module级别build.gradle,确保已删除旧的com.google.android.play:core:1.10.3依赖。若第三方库间接引入了旧版Core,需手动排除:

implementation('com.google.android.play:app-update-ktx:2.1.0') {
    exclude group: 'com.google.android.play', module: 'core'
}

可通过执行./gradlew app:dependencies命令查看依赖树,确认旧版Core已完全清除。

2. 清理重建项目

  • 执行Build > Clean Project清除缓存文件
  • 执行Build > Rebuild Project重新编译生成新的Dex文件
  • 卸载设备上的旧应用后重新安装,避免残留的旧代码影响

3. 验证方法调用兼容性

虽然官方声称无需修改代码,但确认Kotlin代码中的调用逻辑符合新版规范:

val appUpdateManager = AppUpdateManagerFactory.create(this)
appUpdateManager.appUpdateInfo.addOnSuccessListener { info ->
    // 处理应用更新逻辑
}

KTX版本提供了appUpdateInfo扩展属性,同时兼容旧的getAppUpdateInfo()方法,只要依赖无冲突即可正常运行。

4. 检查依赖完整性

若项目还使用Play Core的其他功能(如应用内评论),需单独引入对应模块;仅应用内更新场景下,app-update-ktx:2.1.0已足够。

内容的提问来源于stack exchange,提问作者Orton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 02:14:58