0

android-mic-streaming 演示使用./gradlew installDebug 现成可用,但是当 Android Studio 中的播放按钮用于编译和安装完全相同的项目时,它在点击记录后崩溃并出现以下情况:

2020-08-19 00:44:24.862 12872-12872/org.deepspeechdemo E/AndroidRuntime: FATAL EXCEPTION: main
    Process: org.deepspeechdemo, PID: 12872
    java.lang.IllegalStateException: Could not execute method for android:onClick
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:390)
        at android.view.View.performClick(View.java:7448)
        at android.view.View.performClickInternal(View.java:7425)
        at android.view.View.access$3600(View.java:810)
        at android.view.View$PerformClick.run(View.java:28296)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385)
        at android.view.View.performClick(View.java:7448) 
        at android.view.View.performClickInternal(View.java:7425) 
        at android.view.View.access$3600(View.java:810) 
        at android.view.View$PerformClick.run(View.java:28296) 
        at android.os.Handler.handleCallback(Handler.java:938) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 
     Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "libdeepspeech-jni.so" not found
        at java.lang.Runtime.loadLibrary0(Runtime.java:1087)
        at java.lang.Runtime.loadLibrary0(Runtime.java:1008)
        at java.lang.System.loadLibrary(System.java:1664)
        at org.mozilla.deepspeech.libdeepspeech.DeepSpeechModel.<clinit>(DeepSpeechModel.java:9)
        at org.deepspeechdemo.MainActivity.createModel(MainActivity.kt:90)
        at org.deepspeechdemo.MainActivity.onRecordClick(MainActivity.kt:120)
        at java.lang.reflect.Method.invoke(Native Method) 
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385) 
        at android.view.View.performClick(View.java:7448) 
        at android.view.View.performClickInternal(View.java:7425) 
        at android.view.View.access$3600(View.java:810) 
        at android.view.View$PerformClick.run(View.java:28296) 
        at android.os.Handler.handleCallback(Handler.java:938) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 


该问题似乎与使用 Android Studio 时未包含 libdeepspeech-jni.so 有关。我对 Android 开发完全陌生(我正在构建一个 Mozilla-STT React Native 模块并且只支持 iOS 是没用的)所以这特别令人困惑。

谢谢!

编辑

经过数小时的随机试验和错误:在 Android Studio 中将此选项从“默认 APK”更改为“应用程序包中的 APK”使演示开始工作 屏幕截图 2020-08-21 在 12 26 56 AM

但是,在我的示例应用程序上为 React Native 模块(它有一个依赖项 android 项目,最终依赖于实际的 libdeepspeech)做同样的事情并没有奏效。它在使用 x86_64 时开始工作,因此必须没有 libdeepspeech x86 二进制文件。

4

1 回答 1

0

经过数小时的随机试验和错误:在 Android Studio 中将此选项从“默认 APK”更改为“应用程序包中的 APK”使演示开始工作 屏幕截图 2020-08-21 在 12 26 56 AM

但是,在我的示例应用程序上为 React Native 模块(它有一个依赖项 android 项目,最终依赖于实际的 libdeepspeech)做同样的事情并没有奏效。它在使用 x86_64 时开始工作,因此必须没有 libdeepspeech x86 (32 bit) binary

于 2020-08-21T23:50:27.963 回答