2

Alle folgenden werden in Android Studio durchgeführt.com/sun/jna/android-arm/libjnidispatch.so im Ressourcenpfad nicht gefunden

Ich habe erfolgreich die Android Watson Speech to Text Demo-App kompiliert und getestet. Ich erstellte dann ein Bibliotheksprojekt mit den Watson-bezogenen APIs und einem zweiten App-Projekt mit einer einfachen Benutzeroberfläche, die auf das Watson-Bibliotheksprojekt verweist. Die Benutzeroberfläche startet erfolgreich und ruft Watson-Sprache in Text-APIs auf. Ich dachte, ich wäre bereit, das Watson-Bibliotheksprojekt wirklich zu nutzen.

Also habe ich das Watson-API-Projekt in mein "echtes" Projekt integriert. Wenn ich die App Verbindung zu Watson starten erhalte ich:

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) 

ich sprach android-wrapper.aar im Libs Verzeichnis aufgenommen haben und in den gradle.build Abhängigkeiten enthalten:

compile fileTree(include: ['*.jar'], dir: 'libs') 
compile 'com.ibm.watson.developer_cloud:java-sdk:2.10.0' 
compile(name: 'speech-android-wrapper', ext: 'aar') 

Meine App ist ziemlich groß und verwendet Multi-Dexing, also frage ich mich, ob dies einen Hinweis darauf geben könnte, was falsch läuft.

Ich habe in einem anderen Problem mit einem AndroidManifest.xml offensichtlichen Konflikt im Anwendungsabschnitt laufen, die ich mit dem Hinzufügen aufgelöst:

tools:replace="android:icon,android:name" 

Ich sehe nicht, wie das die Link-Fehler verursachen könnten aber nur werfen es da draußen für den Fall, dass ich die Bedeutung davon vermisse.

Auf der Suche nach Vorschlägen.

Antwort

2

Wenn Sie das Modul von "speech-android-Wrapper" sind Referenzierung, benutzen Sie bitte diese Konfiguration in Ihrer gradle verwenden:

compile project(':speech-android-wrapper') 

Wenn Sie AAR Libs verwenden, bitte versuchen Sie es dieses:

dependencies { 
    //... 
    debugCompile(name:'speech-android-wrapper-debug', ext:'aar') 
    releaseCompile(name:'speech-android-wrapper-release', ext:'aar') 
} 

...

repositories{ 
    //... 
    flatDir{ 
    dirs 'libs' 
    } 
} 

Icon Problem wurde in einem anderen Repo aufgelöst bereits, wird den Watson Entwickler zusammengeführt werden Cloud-Repo bald.

Ich hoffe, es hilft.

+0

Michael - Danke. Ich werde es versuchen, aber bis zum Ende der Woche werde ich vielleicht nicht mehr dazu in der Lage sein. – Eric

+0

Keine Freude. Irgendeine Idee, wenn Multidinge das Problem verursachen könnte. – Eric