$cordovaSQLite 32 bit


#1

Hi,

I’m getting this java exception when I run my app on a 32 bit cpu architecture:

No implementation found for java.lang.String com.almworks.sqlite4java.SQLiteSwiggedJNI.sqlite3_libversion() (tried Java_com_almworks_sqlite4java__1SQLiteSwiggedJNI_sqlite3_1libversion and Java_com_almworks_sqlite4java__1SQLiteSwiggedJNI_sqlite3_1libversion_)

com.almworks.sqlite4java.SQLiteException: [-91] cannot load library: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file “/data/app/com.ionicframework.ihpapp434560-1/base.apk”],nativeLibraryDirectories=[/data/app/com.ionicframework.ihpapp434560-1/lib/x86, /vendor/lib, /system/lib]]] couldn’t find “libsqlite4java-android-x86_64.so”

It happens when I call $cordovaSQLite.openDB(dbhere).

I think is because the path on a 32 bit architecture is different from a 64 bit (it work on it) so it can’t load the plugin but I don’t know how to resolve it.

Can someone help?

Thanky you.


#2

Same error here, but only on Samsung Galaxy S6 with android 5.0.2.
Marco, did you found a solution?


#3

Our app didn’t seem to work on the new Samsung Note 5. The above link suggests adding androidDatabaseImplementation: 2 to the sqlite openDatabase. If you’re using ng-cordova, you’ll need to edit your file a bit:

angular.module('ngCordova.plugins.sqlite', [])
// .....
.factory('$cordovaSQLite', ['$q', '$window', function ($q, $window) {
return $window.sqlitePlugin.openDatabase({
      name: dbName,
      bgType: background,  // don't forget the comma
      androidDatabaseImplementation: 2 //add this important bit here
    });
  },

I’m still looking into this solution to determine if this will work for other devices, but it got the sqlite to work on the new phone for our app, so I have hope it will work for the others.