wie verwenden von 32-bit native-Bibliotheken auf 64-bit-Android-L-Plattform

Ich habe ein Android-Anwendung, die ich zusammengestellt mit AOSP(Kitkat) android-system Anwendung und es lief gut. Meine Anwendung ist abhängig von native code kompiliert mit Android-NDK als 32-bit-Bibliotheken. Ich bin kopieren nativen Bibliotheken in meinem android-Anwendungen libs/armeabi Ordner und dann mit dem Aufbau meiner android-App im AOSP(habe ich auch geändert Gerät.mk kopieren meine libs in die /system/lib Ordner). Alles funktioniert auf Android Kitkat.

Als ich portiert meine Anwendung auf Android-L(64-bit-Plattform), dann bin ich nicht in der Lage zu laden meine native Bibliotheken von Android-Anwendung und Fehler wie -

java.lang.UnsatisfiedLinkError: dlopen failed: "libfoobar.so" is 32-bit instead of 64-bit

Ich bin mit dem folgenden java-code zum laden der native-Bibliothek-

        if ( ENABLE_ANDROID_INTEGRATION )
        {
            System.load("/system/lib/libfoobar.so");
        }
        else
        {
            System.loadLibrary("foobar");
        }

Wenn ich Baue meinen code mit AOSP dann ENABLE_ANDROID_INTEGRATION ist wahr

Interessanter, wenn ich ausgeschaltet ENABLE_ANDROID_INTEGRATION und bauen meine Anwendung in Eclipse, die außerhalb AOSP als normaler "herunterladbare" Anwendung dann meine Anwendung läuft problemlos auf 64-bit-Android-Plattform.

Was ich wissen möchte - wie kann ich meine Anwendung als native android-system-Anwendung mit 32-bit-Bibliotheken(also AOSP build) für 64-bit-Android-Plattform?

Was ich versucht habe - ich habe LOCAL_32_BIT_ONLY = true Flagge in meinem android Anwendung, Android.mk-Datei, aber es scheint nicht sinnvoll. Kann sein ich bin nicht voll und ganz bewusst, dieses flag verwenden.

So, ich bin running out of time so zog ich Stelle diese Frage hier in der Gruppe anstelle von RnD. Wenn jemand angesichts dieses Problems dann bitte guide.

Grüße,
Meraj

InformationsquelleAutor Meraj Ahmad | 2014-12-30
Schreibe einen Kommentar