cancel
Showing results for 
Search instead for 
Did you mean: 

Runtime error with UltraliteJ64

0 Kudos
1,391

We updated our so files and jar file, according to the description in "UltraliteJ 64bit" forum topic (https://sqlanywhere-forum.sap.com/questions/33960/ultralitej-64bit) The build is ok, the apk includes the files, but the app crashes immediately after install with the following error message:

ACRA caught a UnsatisfiedLinkError for java.lang.UnsatisfiedLinkError: No implementation found for void com.sap.ultralitejni17.implementation.JniDbMgr.setLibraryLocation(java.lang.String) (tried Java_com_sap_ultralitejni17_implementation_JniDbMgr_setLibraryLocation and Java_com_sap_ultralitejni17_implementation_JniDbMgr_setLibraryLocation__Ljava_lang_String_2) at com.sap.ultralitejni17.implementation.JniDbMgr.setLibraryLocation(Native Method) at com.sap.ultralitejni17.implementation.JniDbMgr.Connect(Unknown Source:76) at com.sap.ultralitejni17.DatabaseManager.connect(Unknown Source:0)

Got the same error message on
- Android 9, 10 and 11 as well - With different Ultralite 17 builds (5855, 6230, 6315)

With the previous versions, without support for Android arm64 and x86_64, the app did not and does not crash.

How can we solve this runtime error?

Thank You in advance!

Accepted Solutions (0)

Answers (1)

Answers (1)

chris_keating
Product and Topic Expert
Product and Topic Expert

The native libraries are, by default, located in the projects app/src/main/jniLibs with the directories

   arm64-v8a
   armeabi-v7a
   x86
   x86_64

This was the cause for this issue. There may be configuration changes that can be made to redirect where the shared objects can be located in the Android Studio project. For example, the app/build.gradle android{...} may use the following

sourceSets { main { jni.srcDirs = ['src/main/jni', 'src/main/jniLibs/'] } }

to define the location of the libraries.