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

App可在AVD运行但真机(API31)崩溃,build.gradle是否有误?

问题分析与修复建议

你的build.gradle配置确实存在导致API31设备崩溃的问题,核心原因是过时且版本不兼容的第三方依赖,以及与高版本Android系统的适配缺失:

核心问题点

  • Firebase依赖版本严重过时且不匹配:
    • firebase-core:15.0.2是极其老旧的版本,和firebase-ml-vision:24.0.3等其他Firebase库版本冲突,这种版本不一致会触发运行时崩溃,尤其在高版本Android系统中表现更明显。
    • firebase-ml-vision已被官方弃用,不再维护,无法适配Android 12(API31)及以上的系统规则变更。
  • 目标SDK设为33,但依赖的第三方库都是适配旧版本系统的,Android 12引入了应用启动权限、通知权限等新规则,旧库未适配这些变更,启动时会触发异常。

修复步骤

  1. 统一Firebase依赖版本:使用Firebase BoM管理所有Firebase库版本,避免版本冲突。替换原有的Firebase依赖为以下配置:
// 在dependencies块顶部添加BoM
implementation platform('com.google.firebase:firebase-bom:32.7.0')
// 移除firebase-core,BoM会自动管理必要的核心依赖
implementation 'com.google.firebase:firebase-analytics'
// 替换弃用的firebase-ml-vision为ML Kit的图像标签库(如果你的功能是图像标签)
implementation 'com.google.mlkit:image-labeling:17.0.7'
  1. 升级Google Play服务依赖:将play-services-vision:20.0.0升级到适配高版本的最新稳定版:
implementation 'com.google.android.gms:play-services-vision:20.1.3'
  1. 适配Android 12系统规则:

    • 若应用需要发送通知,在AndroidManifest.xml中添加对应权限:
      <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
      
    • 确保所有Activity的启动模式符合Android 12要求,避免使用过时的启动标志。
  2. 同步并测试:执行Gradle同步,清理项目后重新编译,在API31设备上验证启动情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:54:26