debugging 为什么我的flutter应用在发布模式下崩溃,而在调试模式下工作正常?

nkoocmlb  于 2022-12-19  发布在  Flutter
关注(0)|答案(1)|浏览(266)

我目前正在使用vosk和下面链接的vosk-flutter-plugin开发一个语音辅助扑动应用程序。
https://github.com/alphacep/vosk-flutter
该应用在debug mode中运行良好,但在打开访问vosk-plugin的视图时崩溃。它不会在启动时崩溃,只会在特定视图上崩溃。具体来说,它会在vosk-flutter-plugin尝试初始化vosk模型(从下载的zip文件加载)时崩溃。
控制台显示以下错误:

E/AndroidRuntime(24895): FATAL EXCEPTION: pool-2-thread-1
E/AndroidRuntime(24895): Process: com.example.app, PID: 24895
E/AndroidRuntime(24895): java.lang.UnsatisfiedLinkError: Can't obtain peer field ID for class com.sun.jna.Pointer
E/AndroidRuntime(24895):        at com.sun.jna.Native.initIDs(Native Method)
E/AndroidRuntime(24895):        at com.sun.jna.Native.<clinit>(Unknown Source:287)
E/AndroidRuntime(24895):        at com.sun.jna.Native.H(Unknown Source:0)
E/AndroidRuntime(24895):        at org.vosk.LibVosk.<clinit>(Unknown Source:4)
E/AndroidRuntime(24895):        at org.vosk.Model.<init>(Unknown Source:0)
E/AndroidRuntime(24895):        at u1.b$d.a(Unknown Source:4)
E/AndroidRuntime(24895):        at u1.b$d.call(Unknown Source:0)
E/AndroidRuntime(24895):        at u1.c$b.run(Unknown Source:2)
E/AndroidRuntime(24895):        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
E/AndroidRuntime(24895):        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
E/AndroidRuntime(24895):        at java.lang.Thread.run(Thread.java:1012)

我的猜测是,它是由发布模式中的代码模糊引起的。
但是在构建apk时使用--no-shrink命令是不起作用的。(而且flutter build appbundle命令中也不存在该标志)

zbdgwd5y

zbdgwd5y1#

当我没有看到任何代码时,很难回答这个问题。但我遇到过这种情况,它与expandedwidget有关(我在stack widget中使用了它),当我重构代码时,它在发布模式下没有崩溃。

相关问题