com / sun / jna / android-arm / libjnidispatch.so在资源路径中找不到

时间:2016-06-03 18:40:07

标签: java android ibm-cloud speech-to-text ibm-watson

以下所有内容均在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) 

我在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"

我不知道这会如何导致链接错误,只是将其丢弃,以防我错过了它的重要性。

寻找建议。

1 个答案:

答案 0 :(得分:2)

如果您正在引用“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'
  }
}

图标问题已在另一个回购中解决,很快将合并到Watson Developer Cloud回购。

希望它有所帮助。