以下所有操作均在Android Studio中完成。
我已经成功编译并测试了Android Watson Speech to Text演示应用程序。然后,我创建了一个包含Watson相关API的库项目,并创建了一个第二应用程序项目,该项目具有引用Watson库项目的简单UI。 UI成功启动,并向文本api调用Watson语音。我以为我可以真正使用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)
我在libs目录中包含了speech-android-wrapper.aar,并在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"
我看不到这怎么可能导致链接错误,但是只是丢掉了,以防万一我错过了它的重要性。
寻找建议。
最佳答案
如果您引用的是“speech-android-wrapper”模块,请在gradle中使用以下配置:
compile project(':speech-android-wrapper')
如果您使用的是AAR库,请尝试以下操作:
dependencies {
//...
debugCompile(name:'speech-android-wrapper-debug', ext:'aar')
releaseCompile(name:'speech-android-wrapper-release', ext:'aar')
}
...
repositories{
//...
flatDir{
dirs 'libs'
}
}
Icon问题已在另一个存储库中得到解决,将很快合并到Watson Developer Cloud存储库中。
希望能帮助到你。