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

Flutter应用Release模式崩溃:Dart VM初始化失败报错

解决Flutter Release模式崩溃:Precompiled runtime requires a precompiled snapshot

问题描述

Flutter应用在Debug模式下正常运行,但Release模式启动即崩溃。单独打开Android文件夹在Android Studio中以Release模式运行时,触发如下报错:

A/flutter: [FATAL:flutter/runtime/dart_vm_initializer.cc(22)] Error while initializing the Dart VM: Precompiled runtime requires a precompiled snapshot
A/libc: Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 9712

环境版本信息

flutter version : 3.0.5

compileSdkVersion 33
minSdkVersion 21
targetSdkVersion 33

dependencies {
        classpath 'com.android.tools.build:gradle:4.1.3'
//        classpath 'com.android.tools.build:gradle:3.6.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.5'
    }

LogCat关键日志(开启debuggable true后)

01/22 00:12:00: Launching 'app' on Pixel 4 API 31.
Install successfully finished in 4 s 839 ms.
$ adb shell am start -n "com.ore/com.ore.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 16685 on device 'Pixel_4_API_31 [emulator-5554]'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
I/.outreachexper: Late-enabling -Xcheck:jni
W/.outreachexper: Unexpected CPU variant for X86 using defaults: x86_64
D/CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10163; state: ENABLED
V/GraphicsEnvironment: ANGLE Developer option for 'com.ore' set to: 'default'
V/GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
D/libEGL: loaded /vendor/lib64/egl/libEGL_emulation.so
D/libEGL: loaded /vendor/lib64/egl/libGLESv1_CM_emulation.so
D/libEGL: loaded /vendor/lib64/egl/libGLESv2_emulation.so
I/ResourceExtractor: Found extracted resources res_timestamp-1-1674385878848
I/ResourceExtractor: Resource version mismatch res_timestamp-1-1674387737896
I/ResourceExtractor: Extracted baseline resource assets/flutter_assets/kernel_blob.bin
I/ResourceExtractor: Extracted baseline resource assets/flutter_assets/vm_snapshot_data
I/ResourceExtractor: Extracted baseline resource assets/flutter_assets/isolate_snapshot_data
W/.ore: type=1400 audit(0.0:310): avc: denied { map } for path="/data/data/com.ore/app_flutter/flutter_assets" dev="dm-5" ino=148729 scontext=u:r:untrusted_app:s0:c163,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c163,c256,c512,c768 tclass=dir permissive=0 app=com.ore
A/flutter: [FATAL:flutter/runtime/dart_vm_initializer.cc(22)] Error while initializing the Dart VM: Precompiled runtime requires a precompiled snapshot
    
    
    --------- beginning of crash
A/libc: Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 16685 (.ore), pid 16685 (.ore)
W/.ore: type=1400 audit(0.0:311): avc: denied { map } for path="/data/data/com.ore/app_flutter/flutter_assets" dev="dm-5" ino=148729 scontext=u:r:untrusted_app:s0:c163,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c163,c256,c512,c768 tclass=dir permissive=0 app=com.ore
W/.ore: type=1400 audit(0.0:312): avc: denied { read } for name="max_map_count" dev="proc" ino=183138 scontext=u:r:untrusted_app:s0:c163,c256,c512,c768 tcontext=u:object_r:proc_max_map_count:s0 tclass=file permissive=0 app=com.ore

解决方案

1. 用Flutter命令构建Release包

不要直接在Android Studio中单独打开Android文件夹构建,回到Flutter项目根目录执行命令:

flutter build apk --release

或使用Flutter插件的Release构建选项,确保Flutter完整生成预编译快照文件。

2. 检查Android构建配置

  • 打开android/app/build.gradle,确认release构建类型没有干扰Flutter预编译的设置:
    buildTypes {
        release {
            signingConfig signingConfigs.release
            // 不要添加禁用混淆或修改资源处理的自定义逻辑
        }
    }
    
  • 检查gradle.properties,确保没有禁用预编译快照的配置:
    # 确保以下配置不存在或为false
    # flutter.disablePrecompiledSnapshot=true
    

3. 清理缓存后重新构建

执行以下命令清理项目缓存,再重新构建:

flutter clean
flutter pub get
flutter build apk --release

4. 处理SELinux权限问题

日志中出现avc: denied权限报错,模拟器上通常是环境问题,优先通过前几步解决;真实设备上需:

  • 避免自定义文件操作修改flutter_assets目录权限
  • 测试关闭应用内的权限管理逻辑,确认是否是权限限制导致快照无法加载

5. 升级Flutter及Gradle版本

当前使用的Flutter 3.0.5和Gradle 4.1.3版本较旧,存在已知兼容性问题,建议升级:

  • 升级Flutter到最新稳定版:flutter upgrade
  • 同步升级Gradle插件,修改android/build.gradle中的classpath:
    classpath 'com.android.tools.build:gradle:7.4.2'
    
    同时修改android/gradle/wrapper/gradle-wrapper.properties中的gradle版本:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:00:50