Flutter构建失败:Java堆空间不足致compileDebugKotlin任务执行错误
解决Flutter构建时Java堆空间不足的问题
核心原因
检测到系统环境变量_JAVA_OPTIONS设置的堆内存-Xmx512M过小,导致Jetify转换arm64_v8a_debug相关jar包时内存不足,进而引发app:compileDebugKotlin任务执行失败。
解决方案
1. 调整系统全局_JAVA_OPTIONS环境变量
增大Java虚拟机的堆内存分配:
- Windows系统:
打开「系统属性→高级→环境变量」,找到_JAVA_OPTIONS变量,将其值修改为-Xmx2048M(或-Xmx4G,根据电脑内存容量调整) - macOS/Linux系统:
终端执行临时生效命令:
若要永久生效,编辑export _JAVA_OPTIONS="-Xmx2048M"~/.bashrc或~/.zshrc文件,添加上述命令后执行source ~/.bashrc(或对应配置文件)
2. 单独配置项目Gradle内存
在Flutter项目的Android模块中指定更大堆内存,避免影响全局设置:
- 打开项目根目录下的
android/gradle.properties,添加或修改以下配置:org.gradle.jvmargs=-Xmx2048M -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 - 可选:针对Kotlin编译任务单独配置,打开
android/app/build.gradle,在android块内添加:kotlinOptions { jvmArgs = ['-Xmx2048M'] }
3. 清理项目缓存后重新构建
执行以下命令清理缓存并重新启动项目:
flutter clean flutter run --debug
4. 临时关闭Jetify(谨慎使用)
如果项目没有依赖非AndroidX的第三方库,可以关闭Jetify减少内存消耗:
在android/gradle.properties中设置:
android.enableJetifier=false
注意:若项目依赖旧版非AndroidX库,关闭Jetify会导致兼容性问题,仅在确认无此类依赖时使用
内容的提问来源于stack exchange,提问作者Elhadj slimane HOUACHE
相关产品推荐
相关产品推荐

