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

Flutter 1.12+如何禁用ProGuard?解决--proguard参数未知错误

解决Flutter 1.12+启用ProGuard后运行错误及禁用混淆的问题

我之前也踩过这个坑,Flutter 1.12版本之后ProGuard默认启用,老的禁用方法和命令参数都失效了,给你几个实用的解决方向:

方法一:通过Gradle配置永久禁用混淆和压缩

虽然Flutter默认开启了ProGuard,但你可以直接在Android项目的gradle配置里手动覆盖这个设置:

  1. 打开你的Flutter项目,找到android/app/build.gradle文件
  2. 定位到buildTypes下的release代码块,修改参数如下:
buildTypes {
    release {
        // 关闭代码混淆
        minifyEnabled false
        // 关闭资源压缩
        shrinkResources false
        // 如果原来有proguardFiles的配置,注释或删除掉
        // proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

保存后重新打包,ProGuard就会被完全禁用了。

方法二:临时禁用混淆打包(用命令参数)

你之前尝试的--proguard参数确实已经被废弃了,Flutter 1.12之后用--shrink参数来控制混淆和资源压缩(默认开启),对应的禁用参数是--no-shrink:

  • 打App Bundle的命令:
flutter build appbundle --no-shrink
  • 打APK的命令:
flutter build apk --no-shrink

额外建议:修复ProGuard规则而非直接禁用

如果只是因为ProGuard规则缺失导致运行错误,其实更推荐你完善混淆规则,这样既能保留代码混淆的安全性,又能解决问题:

  1. 打开android/app/proguard-rules.pro文件
  2. 添加Flutter基础混淆规则(如果没有的话):
# Flutter核心组件规则
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }
  1. 针对你使用的第三方依赖,去官方文档查找对应的ProGuard规则并添加进去

内容的提问来源于stack exchange,提问作者Jeff S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:02:58