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

Flutter应用安卓实体机运行报PackageAndroidArtifact$IncrementalSplitterRunnable错误

问题成因

这个错误的核心触发原因是Gradle构建APK时JVM堆内存不足,触发java.lang.OutOfMemoryError异常,负责APK架构拆分的com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable任务执行失败。
模拟器可正常运行的原因是:模拟器通常为单一x86/x86_64架构,构建时不需要处理多架构拆分逻辑,内存开销远低于全架构构建;而实体机运行时默认会构建全架构安装包,打包阶段需要处理的二进制资源量翻倍,超过了Gradle默认的JVM内存上限。

解决方案

方案1:调高Gradle JVM内存上限

  • 打开项目路径下的android/gradle.properties文件
  • 修改org.gradle.jvmargs配置项,调整为以下参数(可根据本地内存情况上调数值):
    org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8
    
    其中-Xmx4096m代表将JVM最大堆内存设置为4G,若内存充足可调整为-Xmx6144m(6G)或者-Xmx8192m(8G)。

方案2:过滤打包架构,降低构建开销

  • 打开项目路径下的android/app/build.gradle文件
  • 在android.defaultConfig代码块中添加ndk架构过滤配置:
    android {
        defaultConfig {
            // 其他原有配置保持不变
            ndk {
                // 仅保留主流安卓实体机架构,不需要的x86、x86_64架构不再参与构建
                abiFilters 'arm64-v8a', 'armeabi-v7a'
            }
        }
    }
    
    该配置可以直接减少构建时需要处理的二进制文件数量,大幅降低打包阶段的内存占用。

可选优化:关闭调试阶段的压缩混淆

如果上述两个方案执行后仍有问题,可以临时关闭debug模式的代码和资源压缩,进一步降低构建消耗:

  • 同样在android/app/build.gradle文件中找到buildTypes.debug配置块,修改参数:
    buildTypes {
        debug {
            minifyEnabled false
            shrinkResources false
            // 其他原有配置保持不变
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:45:04