The question is answered, right answer was accepted
SQLite exception on Android
Hi!
I use this code to open Sqlite connection to a database:
...
using Mono.Data.Sqlite; ...
public static void OpenDB(string p) {
string filepath = "";
#if UNITY_EDITOR
filepath = string.Format(@"Assets/StreamingAssets/{0}", p);
#else
filepath = Application.persistentDataPath + "/" + p;
if(!File.Exists(filepath)) {
Debug.LogWarning("File \"" + filepath + "\" does not exist. Attempting to create from \"" +
Application.dataPath + "!/assets/" + p);
WWW loadDB = new WWW("jar:file://" + Application.dataPath + "!/assets/" + p);
while(!loadDB.isDone) {}
File.WriteAllBytes(filepath, loadDB.bytes);
}
#endif
//open db connection
connection = "URI=file:" + filepath;
// Debug.Log("Stablishing connection to: " + connection);
try {
dbcon = new SqliteConnection(connection);
dbcon.Open();
}
catch (Exception exception) {
GUITxt = exception.Message + "\n" + exception.StackTrace;
Debug.LogError(exception.Message + "\n" + exception.StackTrace);
}
finally {
dbcon.Close ();
dbcon.Dispose ();
}
}
and it works fine on Windows. On Android device I've an exception:
at (wrapper managed-to-native) Mono.Data.Sqlite.UnsafeNativeMethods.sqlite3_open_v2 at Mono.Data.Sqlite3.Open(System.String strFileName, SQLiteOpenFlagsEnum flags, Int32 maxPoolSize, boolean usePool) [0x000... at Mono.Data.Sqlite.SqliteConnection.Open() [0x00000] in :0 at DBAccess.OpenDB(System.String p) [0x00000] in :0
I have the sqlite3.so file in Assets/Android/Plugins folder.
Where I'm wrong?
Many thanks!
[EDIT]
I SOLVED just using the suggestion and libsqlite3.so file by DanTreble (thanks!) from post #13:
https://forum.unity3d.com/threads/sqlite-for-android-help-please.97043/
Follow this Question
Related Questions
Sqlite3 and Cyanogen 0 Answers
Class com.playerio.PlayCodeStorage not found... 0 Answers
Sqlite On Android Does not work with unity 0 Answers
How to read a database (sqlite) on Android? 0 Answers
DllNotFoundException: sqlite3 on OnePlus 7 (Android 9) 0 Answers