Ich mache eine App in Android Studio, die zwei Bibliotheken verwendet. Eine native Bibliothek mit einem Android-Wrapper und einer Jar-Bibliothek. Aus irgendeinem Grund wird die systemeigene Bibliothek nicht geladen, wenn die andere JAR-Bibliothek in das Projekt kompiliert wird. Wenn ich also die App nur mit der nativen Bibliothek ausführe, funktioniert alles einwandfrei. Ich füge das andere Glas-Bibliothek meiner gradle-Datei und Boom ... ein UnsatisfiedLinkError:Android Studio: UnbefriedigterLinkError: findLibrary zurückgegeben Null - Laden nativer Bibliothek
java.lang.UnsatisfiedLinkError: Couldn't load MobileOcrEngine from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.app-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.app-1, /vendor/lib, /system/lib]]]: findLibrary returned null
Meine app läuft gut, wenn ich diese verwenden:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'src/main/jniLibs')
compile 'com.android.support:support-v13:21.0.2'
compile project(':wheel')
}
Der Fehler tritt auf, wenn ich versuche:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'src/main/jniLibs')
compile 'com.android.support:support-v13:21.0.2'
compile project(':wheel')
compile files('libs/realm-0.78.0.jar')
}
oder wenn ich versuche, die gleiche Bibliothek zu verwenden, aber die Maven-Repository:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'src/main/jniLibs')
compile 'com.android.support:support-v13:21.0.2'
compile project(':wheel')
compile 'io.realm:realm-android:0.78.0'
}
oder wenn ich versuche, das Glas in jniLibs Ordner zu platzieren:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'src/main/jniLibs')
compile 'com.android.support:support-v13:21.0.2'
compile project(':wheel')
}
Ich habe keine Ahnung, wo die Wurzel des Problems liegt. Mit einer der beiden Bibliotheken, Android Studio oder mache ich etwas falsch?
Hinweis: Ich weiß, es habe auf Stackoverflow in Bezug auf UnsatisfiedLinkErrors viele Fragen gewesen, doch keiner von ihnen bieten Lösungen für mein Problem. Ich habe kein Problem beim Laden der nativen Bibliothek, wenn es die einzige Bibliothek ist, die ich verwende ...
Könnten Sie bitte erklären, wie Sie Ihre Lösung sowohl für armeabi und armeabi-V7A –
In Ihrem jniLibs Verzeichnis, hat ein Unterverzeichnis zu tun. Kopieren Sie Ihre Bibliothek so, dass sie in beiden Architekturverzeichnissen (armeabi und armeabi-v7a) angezeigt wird. – Skywalker10
Großartig ..! Arbeitete für mich .. Vielen Dank .. –