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

如何解决Flutter使用video_editor打包release版出现AsyncTask #2致命异常

问题原因

这个报错核心是release打包阶段的代码混淆/资源裁剪逻辑破坏了video_editor依赖的mobile_ffmpeg原生库与Java层的绑定关系,导致JNI调用失败,debug模式默认关闭混淆所以不会触发问题。

解决方案

1. 新增Proguard混淆白名单规则

在你的Flutter项目android/app/proguard-rules.pro文件中添加如下规则,禁止混淆mobile_ffmpeg相关类:

-keep class com.arthenica.mobileffmpeg.** { *; }
-dontwarn com.arthenica.mobileffmpeg.**

2. 修正build.gradle配置

打开android/app/build.gradle文件,做如下调整:

  • 在defaultConfig块中补充NDK架构过滤配置,确保你的目标设备架构在列表内:
android {
    defaultConfig {
        // 已有的其他配置
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
        }
        // minSdkVersion建议设置为21及以上,匹配mobile_ffmpeg最低兼容要求
        minSdkVersion 21
    }

    buildTypes {
        release {
            // 已有的签名配置、混淆开关配置
            // 新增如下配置保留so库调试符号,避免被裁剪
            ndk {
                debugSymbolLevel 'FULL'
            }
        }
    }
}

3. 升级依赖版本

如果你使用的是低于1.3.0版本的video_editor,依赖的旧版mobile_ffmpeg存在已知的JNI兼容bug,直接在pubspec.yaml中将video_editor升级到最新稳定版即可修复。

4. 验证打包结果

如果以上配置都完成后仍有问题,可以解压生成的release APK文件,检查lib目录下对应架构的文件夹中是否存在libmobileffmpeg.so文件,确认so库没有被裁剪工具误删。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:21:00