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

Flutter应用debug正常release打包在Android11设备出现Illegal class access崩溃

错误触发原因

这个错误的核心诱因是Release构建开启的R8/ProGuard混淆机制错误修改了AndroidX AppCompat库类的访问权限与类名,同时Android 11对应用类访问的合法性校验比旧系统更严格,因此触发崩溃。Debug模式默认关闭混淆,所以不会出现该问题。你当前使用的Gradle 6.7版本对应的R8工具存在对高版本AppCompat库的兼容bug,是该问题的常见诱发因素。

解决方案
  • 方案1:调整混淆规则
    打开项目中android/app/proguard-rules.pro文件,添加如下规则,避免AppCompat相关类被错误混淆:
-keep class androidx.appcompat.app.** { *; }
-keep class androidx.appcompat.widget.** { *; }
  • 方案2:升级构建工具版本
    你当前使用的Gradle 6.7版本偏旧,可将gradle-wrapper.properties中的distributionUrl升级为兼容版本,例如:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip

同时将android/build.gradle中的Android Gradle插件版本升级到对应匹配版本,比如7.0.4,修复旧版R8的兼容bug。

  • 方案3:校验AppCompat依赖版本
    如果你的项目手动依赖了androidx.appcompat:appcompat,可将版本回退到1.3.1稳定版,或升级到最新稳定版,同时确保依赖版本和构建工具版本兼容。如果是第三方Flutter插件引入了高版本AppCompat依赖,可通过依赖强制指定版本对齐。

  • 临时验证方案
    你可以先在android/app/build.gradle的buildTypes -> release配置块中,将minifyEnabled和shrinkResources都设置为false,关闭混淆和资源压缩后重新构建Release包,如果不再崩溃,即可确认是混淆导致的问题,再按上述方案调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:36:03