以下所有操作均在 Android Studio 中完成。
我已成功编译并测试了 Android Watson Speech to Text 演示应用程序。然后,我创建了一个包含 Watson 相关 API 的库项目和一个带有引用 Watson 库项目的简单 UI 的第二个应用程序项目。 UI 成功启动并调用 Watson 语音转文本 api。我以为我已经准备好真正使用 Watson 图书馆项目了。
因此,我将 Watson API 项目合并到我的“真实”项目中。当我启动与 Watson 的应用程序连接时,我得到:
E/AndroidRuntime: FATAL EXCEPTION: initStreamToServerThread
Process: com.sixflags.android, PID: 25481
java.lang.UnsatisfiedLinkError: Native library (com/sun/jna/android-arm/libjnidispatch.so) not found in resource path (.)
at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:786)
at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:746)
at com.sun.jna.Native.<clinit>(Native.java:135)
at com.sun.jna.NativeLibrary.<clinit>(NativeLibrary.java:82)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:337)
at com.ibm.watson.developer_cloud.android.speech_to_text.v1.opus.JNAOpus.<clinit>(JNAOpus.java:42)
at com.ibm.watson.developer_cloud.android.speech_to_text.v1.audio.OggOpusEnc.initEncoderWithUploader(OggOpusEnc.java:53)
at com.ibm.watson.developer_cloud.android.speech_to_text.v1.audio.WebSocketUploader.initStreamAudioToServer(WebSocketUploader.java:113)
at com.ibm.watson.developer_cloud.android.speech_to_text.v1.audio.WebSocketUploader.access$000(WebSocketUploader.java:46)
at com.ibm.watson.developer_cloud.android.speech_to_text.v1.audio.WebSocketUploader$2.run(WebSocketUploader.java:175)
我已将 voice-android-wrapper.aar 包含在 libs 目录中,并包含在 gradle.build 依赖项中:
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.ibm.watson.developer_cloud:java-sdk:2.10.0'
compile(name: 'speech-android-wrapper', ext: 'aar')
我的应用程序相当大,并且正在使用多重索引,所以我想知道这是否可以提供出现问题的线索。
我确实遇到了另一个问题,即应用程序部分中的 AndroidManifest.xml 清单冲突,我通过添加以下内容解决了该问题:
tools:replace="android:icon,android:name"
我不明白这会如何导致链接错误,但只是将其扔在那里,以防我错过它的重要性。
寻找建议。