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

Android Studio运行正常的App上架Google Play后安装崩溃如何排查

可能的原因及排查方向

  • 混淆/R8配置缺失
    你通过Android Studio安装的是Debug版本,默认关闭混淆/R8优化,而上传Google Play的Release版本通常开启了混淆。如果没有为Retrofit相关组件添加防混淆规则,会导致Retrofit服务接口、请求响应实体类的类名、字段名被混淆重命名,最终JSON解析失败或者反射调用异常触发崩溃。
    需要在proguard-rules.pro中添加Retrofit、Gson/Json解析库、以及你自己定义的请求响应实体类、Retrofit服务接口的防混淆规则。
  • 签名配置不匹配
    如果你启用了Google Play托管应用签名,Google Play分发的安装包签名会和你本地打包的签名不一致。如果后端接口有做应用签名校验、或者登录流程依赖的第三方SDK(如谷歌登录、第三方认证服务)只配置了本地打包签名的SHA1/SHA256指纹,未添加Google Play签名的对应指纹,会导致后端返回异常响应,你在onResponse中未做异常处理直接解析数据时触发崩溃。
  • 网络安全配置差异
    Debug版本默认允许明文HTTP请求,Release版本如果没有在AndroidManifest.xml中配置networkSecurityConfig允许对应域名的HTTP请求,或者未配置正确的SSL证书信任规则,会导致网络请求失败,返回的响应体为空,直接调用response.body()的相关方法就会触发空指针崩溃。
  • 构建变体配置错误
    检查你的build.gradle配置中Debug和Release变体的接口地址、参数配置是否一致,避免出现Release版本指向了错误的后端地址、或者配置参数缺失,导致返回不符合预期的响应结构,解析失败崩溃。
  • 异常捕获逻辑缺失
    Retrofit的onResponse回调仅代表请求完成(包括4xx、5xx等错误响应),不代表返回了正确的业务数据。如果你的代码中没有判断response.isSuccessful()、也没有对response.body()做空安全校验,当请求返回错误响应时,直接访问body的属性就会触发崩溃。Debug测试时没有触发错误场景所以不会复现,线上环境出现错误响应时就会崩溃。
  • 符号表未上传
    当前你拿到的崩溃栈行号信息是错位的(Login.java第2行不可能是onResponse方法的逻辑),是因为没有上传Release版本对应的mapping.txt符号表到Crashlytics,建议先上传符号表拿到准确的崩溃代码位置,能大幅提升排查效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:00:03