java.lang.UnsatisfiedLinkError after updating to Android 5.0

German

I'm developing an Android app which uses a native library called liballjoyn_java.so (available here in the Android Core SDK). I'm using Android Studio as IDE and Maven as build/dependency system (not Gradle). With Android KitKat everything worked like a charm and this is how I added the library to my project:

1) Added the library to my local Maven repo

mvn install:install-file -Dfile=./alljoyn/liballjoyn_java.so -DgroupId=org.alljoyn -DartifactId=liballjoyn_java -Dversion=14.06.00 -Dscope=runtime -Dpackaging=so

2) Defined a dependency in the POM file:

        <dependency>
            <groupId>org.alljoyn</groupId>
            <artifactId>liballjoyn_java</artifactId>
            <scope>runtime</scope>
            <type>so</type>
            <version>14.06.00</version>
        </dependency>

3) Called it statically from my code:

static {
    try {
        System.loadLibrary("alljoyn_java");
        Log.d("AllJoynManager", "static - Loaded AllJoyn native library");
    } catch (Exception exception) {
        Log.d("AllJoynManager", "static - Error loading AllJoyn native library");
        exception.printStackTrace();
    }
}

This was working perfectly under KitKat in my Nexus 4 phone but now I installed the official Android 5.0 OTA update and I get the following error on runtime:

11-28 17:57:39.988  30068-30068/com.avispalabs.kiihome E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.avispalabs.kiihome, PID: 30068
    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.avispalabs.kiihome-2/base.apk"],nativeLibraryDirectories=[/data/app/com.avispalabs.kiihome-2/lib/arm, /vendor/lib, /system/lib]]] couldn't find "liballjoyn_java.so"
            at java.lang.Runtime.loadLibrary(Runtime.java:366)
            at java.lang.System.loadLibrary(System.java:989)
            at com.avispalabs.kiihome.helpers.network.alljoyn.AlljoynManager.<clinit>(AlljoynManager.java:38)
            at com.avispalabs.kiihome.ui.activities.MainActivity.<init>(MainActivity.java:38)
            at java.lang.reflect.Constructor.newInstance(Native Method)
            at java.lang.Class.newInstance(Class.java:1572)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1065)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
11-28 17:57:55.432  30068-30068/com.avispalabs.kiihome I/Process﹕ Sending signal. PID: 30068 SIG: 9

I suspect the .so library might have been compiled in way which is somehow incompatible with the new Android 5.0 ART (?). The message that says it can't find the library is probably misleading (the exception is also seen when a library fails to load) but I'm not sure (another possibility is the .so is not correctly extracted or placed).

The library comes precompiled and is advertised to be compatible with JellyBean. I thought previous dynamic libraries would be compatible with new versions of Android, otherwise a lot of apps would break. If I install the same APK in a Nexus 4 with KitKat it just works.

Any advice is highly appreciated.

UPDATE: I have tested my project in a KitKat based device and switched the runtime to ART rather than Dalvik, and the project works fine. This problem seems to be tied to Android 5 rather than ART itself.

German

Answering my own question here. You can solve it by compiling liballjoyn_java as PIE as explained here:

https://jira.allseenalliance.org/browse/ASACORE-1208

This is a workaround until the AllJoyn guys publish a new Android build. Keep an eye here to get the updated release:

https://build.allseenalliance.org/ci/view/Core%20RB14.12%20SDK/job/branch-android-sdk/

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Android - Scandit - java.lang.UnsatisfiedLinkError

From Dev

java.lang.UnsatisfiedLinkError error in android

From Dev

java.lang.UnsatisfiedLinkError error in android

From Dev

After some time barcode scanner throws java.lang.UnsatisfiedLinkError

From Dev

FATAL EXCEPTION: main java.lang.UnsatisfiedLinkError in Android Studio library

From Dev

Running android native code is causing java.lang.UnsatisfiedLinkError

From Dev

java.lang.UnsatisfiedLinkError when loading native library in Android 5.0

From Dev

java.lang.UnsatisfiedLinkError - NDK in android studio gradle?

From Dev

java.lang.UnsatisfiedLinkError when using with android 5.0

From Dev

Android M crash java.lang.UnsatisfiedLinkError: dlopen failed:

From Dev

Android - java.lang.UnsatisfiedLinkError: Native method not found

From Dev

Error within Debug UI: java.lang.reflect.InvocationTargetException after updating Android SDK Tool and ADT

From Dev

OpenCV java.lang.UnsatisfiedLinkError

From Dev

eclipse: java.lang.UnsatisfiedLinkError

From Dev

JNI java.lang.UnsatisfiedLinkError

From Dev

Error occurred during initialization of VM: java.lang.UnsatisfiedLinkError: java.lang.Class.desiredAssertionStatus0(Ljava/lang/Class;)

From Dev

Error occurred during initialization of VM: java.lang.UnsatisfiedLinkError: java.lang.Class.desiredAssertionStatus0(Ljava/lang/Class;)

From Dev

How to fix java.lang.UnsatisfiedLinkError in java

From Dev

Opencv Android: java.lang.UnsatisfiedLinkError: dlopen failed: could not load library "libopencv_java.so"

From Dev

Opencv Android: java.lang.UnsatisfiedLinkError: dlopen failed: could not load library "libopencv_java.so"

From Dev

Getting java.lang.NoClassDefFoundError after updating to API 23

From Dev

Getting java.lang.NoClassDefFoundError after updating to API 23

From Dev

Why do some Android phones cause our app to throw an java.lang.UnsatisfiedLinkError?

From Dev

Android Java NDK/JNI - UnsatisfiedLinkError: Native method not found [...] Ljava/lang/String;

From Dev

Android Instrumentation test java.lang.UnsatisfiedLinkError on using AndroidJunitRunner and AndroidJUnit4

From Dev

java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader

From Dev

Android ReactNative java.lang.UnsatisfiedLinkError:could find DSO to load: libreactnativejni.so

From Dev

Android NDK java.lang.UnsatisfiedLinkError: findLibrary returned null when Multidex enabled

From Dev

java.lang.UnsatisfiedLinkError: Cannot load library

Related Related

  1. 1

    Android - Scandit - java.lang.UnsatisfiedLinkError

  2. 2

    java.lang.UnsatisfiedLinkError error in android

  3. 3

    java.lang.UnsatisfiedLinkError error in android

  4. 4

    After some time barcode scanner throws java.lang.UnsatisfiedLinkError

  5. 5

    FATAL EXCEPTION: main java.lang.UnsatisfiedLinkError in Android Studio library

  6. 6

    Running android native code is causing java.lang.UnsatisfiedLinkError

  7. 7

    java.lang.UnsatisfiedLinkError when loading native library in Android 5.0

  8. 8

    java.lang.UnsatisfiedLinkError - NDK in android studio gradle?

  9. 9

    java.lang.UnsatisfiedLinkError when using with android 5.0

  10. 10

    Android M crash java.lang.UnsatisfiedLinkError: dlopen failed:

  11. 11

    Android - java.lang.UnsatisfiedLinkError: Native method not found

  12. 12

    Error within Debug UI: java.lang.reflect.InvocationTargetException after updating Android SDK Tool and ADT

  13. 13

    OpenCV java.lang.UnsatisfiedLinkError

  14. 14

    eclipse: java.lang.UnsatisfiedLinkError

  15. 15

    JNI java.lang.UnsatisfiedLinkError

  16. 16

    Error occurred during initialization of VM: java.lang.UnsatisfiedLinkError: java.lang.Class.desiredAssertionStatus0(Ljava/lang/Class;)

  17. 17

    Error occurred during initialization of VM: java.lang.UnsatisfiedLinkError: java.lang.Class.desiredAssertionStatus0(Ljava/lang/Class;)

  18. 18

    How to fix java.lang.UnsatisfiedLinkError in java

  19. 19

    Opencv Android: java.lang.UnsatisfiedLinkError: dlopen failed: could not load library "libopencv_java.so"

  20. 20

    Opencv Android: java.lang.UnsatisfiedLinkError: dlopen failed: could not load library "libopencv_java.so"

  21. 21

    Getting java.lang.NoClassDefFoundError after updating to API 23

  22. 22

    Getting java.lang.NoClassDefFoundError after updating to API 23

  23. 23

    Why do some Android phones cause our app to throw an java.lang.UnsatisfiedLinkError?

  24. 24

    Android Java NDK/JNI - UnsatisfiedLinkError: Native method not found [...] Ljava/lang/String;

  25. 25

    Android Instrumentation test java.lang.UnsatisfiedLinkError on using AndroidJunitRunner and AndroidJUnit4

  26. 26

    java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader

  27. 27

    Android ReactNative java.lang.UnsatisfiedLinkError:could find DSO to load: libreactnativejni.so

  28. 28

    Android NDK java.lang.UnsatisfiedLinkError: findLibrary returned null when Multidex enabled

  29. 29

    java.lang.UnsatisfiedLinkError: Cannot load library

HotTag

Archive