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

升级Android Gradle Plugin至4.1.3后release包出现java.lang.AssertionError崩溃

问题根因及解决方案

你遇到的release包触发java.lang.AssertionError崩溃的问题,主要是AGP 4.1+的构建规则调整和项目配置不匹配导致的,可按以下顺序排查修复:

  • 检查release构建类型配置:确认app模块build.gradle的buildTypes.release块下,没有手动设置buildConfigField "boolean", "DEBUG_ASSERTIONS", "true",AGP 4.1+默认仅debug构建开启断言,release默认关闭,手动配置会覆盖默认行为。
  • 检查混淆规则:确认你的ProGuard/R8规则没有禁用代码优化,也没有额外保留断言相关类/逻辑。推荐release构建使用官方默认的优化版混淆配置proguard-android-optimize.txt,该配置会自动在构建阶段移除所有assert语句,不会触发断言崩溃。
  • 排查代码写法:不要在assert语句中写带副作用的代码(比如assert (index++ < list.size)),即使断言被移除也可能导致逻辑异常,特殊场景下也会导致混淆无法正常移除断言逻辑。

如果需要快速修复上线,可直接在release构建配置中强制关闭断言,示例配置如下:

android {
    buildTypes {
        release {
            // 强制关闭断言开关
            buildConfigField "boolean", "DEBUG_ASSERTIONS", "false"
            // 用官方优化版混淆配置确保断言被移除
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            // 其余原有配置保持不变
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 02:36:04