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

Flutter应用Debug正常,Release模式打开Vosk页面崩溃求助

解决方案:Vosk-Flutter Release模式初始化模型崩溃问题

核心问题

崩溃根源是Release模式下R8代码混淆破坏了JNA(Vosk依赖的底层库)和Vosk相关类的结构,导致JNI调用无法找到对应的类字段。

具体修复步骤

1. 添加ProGuard/R8混淆规则

在android/app/proguard-rules.pro文件中添加以下规则,保留关键类不被混淆:

# 保留JNA核心类及成员,避免JNI调用失败
-keep class com.sun.jna.** { *; }
-keepclassmembers class com.sun.jna.** { *; }

# 保留Vosk SDK类及方法
-keep class org.vosk.** { *; }
-keepclassmembers class org.vosk.** { *; }

# 保留vosk-flutter插件内部JNI相关类(对应日志中混淆后的u1包)
-keep class u1.** { *; }

2. 配置Android构建类型(可选)

如果不需要代码混淆,直接在android/app/build.gradle的release块中关闭压缩和混淆:

buildTypes {
    release {
        signingConfig signingConfigs.release // 替换为你的正式签名配置
        minifyEnabled false
        shrinkResources false
    }
}

3. 验证模型加载路径

确保模型解压后的存储路径在Release模式下可访问,推荐使用Flutter的path_provider库获取应用私有目录:

import 'package:path_provider/path_provider.dart';

final dir = await getApplicationDocumentsDirectory();
final modelPath = '${dir.path}/vosk-model';

4. 清理缓存并重新构建

执行以下命令彻底清理构建缓存后重新打包:

flutter clean
flutter build apk --release

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:30:36