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_)
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.
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.