Skip to Content

Intel Android image and SMP 2.x MBO with UltraLite

After reading my blog about how to improve the performance of the Android emulator I guess you are using this image successfully for your Cordova development. In case you want to use the Intel image also for SUP/SMP MBO based projects, you won`t be able to do so. The UltraLite library is for ARM architecture and not for 386.

Here is a simple explanation why you’ll have to use the Google Android images (ARM): after adding the libraries to the Android project, coding the MBO part, deploying the app to the emulator and running it, the log shows an error message like:


FATAL EXCEPTION: mainjava.lang.ExceptionInInitializerError
at com.ianywhere.ultralitejni16.DatabaseManager.connect(Unknown Source)
at com.sybase.afx.ulj.ConnectionUtil.createConnection(ConnectionUtil.java:199)
at com.sybase.afx.ulj.ConnectionUtil.getConnection(ConnectionUtil.java:176)
[…]
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load ultralitej16: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:365)
at java.lang.System.loadLibrary(System.java:535)


Keep in mind that the libraries for the UltraLite database used by MBOs is delivered as a binary library (.so). This library is already compiled and won`t be compiled again for your Android project. This library is for Android devices on ARM, as this is the primary architecture for Android smartphone / tablets is ARM. The folder that contains the files is named armeabi and the .so files make it clear that the library is not a Java object. While the jar for UltraLite included in the Android project allows communicating with the API, the libraries will fail to load on Intel emulator.

On the Intel image, a .so file is for Intel 80386 architecture:

/wp-content/uploads/2014/10/armul1_562206.png

While on the “original” emulator from Google the architecture is ARM:

/wp-content/uploads/2014/10/armul2_562207.png

Running the exact same app on the Google Android image will work. Just install the APK file on the right emulator.

Be the first to leave a comment
You must be Logged on to comment or reply to a post.