java.lang.UnsatisfiedLinkError beim Laden der nativen Bibliothek in Android 5.0 [duplizieren]

Diese Frage hat hier bereits eine Antwort:

UnsatisfiedLinkError auf Android 5.0 Lollipop 1 Antwort

Ich lade meine native Bibliothek von:

try {
       System.loadLibrary("myNative");
} catch (UnsatisfiedLinkError e) {
       //java.lang.UnsatisfiedLinkError here
       System.load("/data/data/com.my.app/app_native/libmyNative.so");
}

Der obige Code wird schließlich in eine Jar-Datei gepackt.

In einem anderen Projekt lade ich das obige Jar mit DexClassLoader:

DexClassLoader dexClassLoader = new DexClassLoader(jarPath,
                    optJarPath,
                    getDir("native", Context.MODE_PRIVATE),
                    getClassLoader());

Beachten Sie, dass bei der Konstruktion diesesdexClassLoader Instanz, ich habe das @ angegebPfa wo sich der native Code befindet, das istgetDir("native", Context.MODE_PRIVATE).

(Ich benutzeNDK release 10, um die native Bibliothek zu generieren. Wenn die native Codedatei libmyNative.so wird generiert, mein Java-Code (der in das endgültige Jar gepackt wurde) überprüft den Typ der CPU-Architektur und kopiert den richtigen nachgetDir("native", Context.MODE_PRIVATE).)

Der obige Code funktioniert auch auf anderen Geräten außer Android 5.0 Lollipop. Wenn läuft aufAndroid 5.0 Lollipop Gerät bekomme ich ständig folgende Fehlermeldung:

java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.my.app/app_native/libmyNative.so" is 32-bit instead of 64-bit
at java.lang.Runtime.load(Runtime.java:331)
at java.lang.System.load(System.java:982)

Wie kann man dieses Problem lösen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage