Flutter项目运行触发Dex合并64K方法数超限错误如何解决
问题根因
该报错是Android平台的单dex文件方法数超限问题:Android单个dex文件最多支持引用65536个方法,你引入的Firebase全家桶、image_picker等依赖累计方法数已经超过阈值,和你修改的iOS端plist配置、pubspec_analyse.yaml文件没有关联,不需要在这两个方向排查。
解决方案
1. 开启multidex支持
打开项目路径下的android/app/build.gradle文件:
- 找到
defaultConfig代码块,添加multiDexEnabled true配置:
android { defaultConfig { // 保留原有配置(applicationId、minSdkVersion、targetSdkVersion、versionCode等) multiDexEnabled true // 新增此行 } }
- 如果你的项目
minSdkVersion设置为20及更低版本,需要在同文件的dependencies代码块中额外引入multidex依赖:
dependencies { // 保留原有依赖配置 implementation "androidx.multidex:multidex:2.0.1" // 新增此行 }
2. (可选优化)开启代码压缩
如果想要减少安装包体积、避免后续再出现方法数超限问题,可开启代码和资源压缩,在同文件的buildTypes代码块中添加配置:
buildTypes { release { // 保留原有签名配置 minifyEnabled true // 开启代码压缩、混淆 shrinkResources true // 开启无用资源清理 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }
3. 重新构建项目
依次执行以下命令清理缓存后重新运行即可:
flutter clean flutter pub get
之后正常启动项目即可解决报错。
内容的提问来源于stack exchange,提问作者Mostafa Allam
相关产品推荐
相关产品推荐

