- Home /
Sqlite database doesn't work on Unity games build to Android Devices
I'm using the Sqlite as Unity Game database and works on Unity Editor, but when I build to Android Devices the Game can't access the database, what can I do to make the script works also on Android Devices ?
Programs/Versions used:
- Unity 5.3.1f1
-Sqlite Precompiled Binaries for Windows 64 (sqlite-dll-win64-x64-3100200.zip (688.01 KiB))
Folder Structure:
-- Assets/Database/MyDataBase.db
-- Assets/Scripts/PerguntaScript.cs
-- Assets/Plugins/Mono.Data.Sqlite.dll
-- Assets/Plugins/sqlite3.def
-- Assets/Plugins/sqlite3.dll
-- Assets/Plugins/System.Data.dll
PerguntaScript.cs (Script that access the Sqlite database)
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System;
using System.Data;
using Mono.Data.Sqlite;
public class PerguntaScript : MonoBehaviour {
private string connectionString;
void Start () {
connectionString = "URI=file:" + Application.dataPath + "/Database/DoencasDB.db";
}
private void GetPergunta(){
using(IDbConnection dbConnection = new SqliteConnection(connectionString)){
dbConnection.Open();
using(IDbCommand dbCommand = dbConnection.CreateCommand()){
string sqlQuery = "SELECT * FROM " + sqliteTabelasPerguntas[sqliteIndexTabelaPergunta] + " WHERE doenca_id=@id LIMIT 1";
dbCommand.Parameters.Add(new SqliteParameter("@id", doencaId));
dbCommand.CommandText = sqlQuery;
using(IDataReader reader = dbCommand.ExecuteReader()){
while(reader.Read()){
pergunta = reader.GetString(1);
alternativasId[0] = reader.GetInt32(3);
alternativasId[1] = reader.GetInt32(4);
alternativasId[2] = reader.GetInt32(5);
alternativasId[3] = reader.GetInt32(6);
alternativaCorretaId = reader.GetInt32(7);
}
dbConnection.Close();
reader.Close();
}
}
}
}
I have the same problem. But when i copy this dll into Plugins folder, nothing happens, same result.
in my Plugins folder i have following dlls:
-I18N.dll
-I18N.West.dll
-$$anonymous$$ono.Data.Sqlite.dll
-sqlite3.dll
-sqlite4.dll
-System.Data.dll
any help plz?
Answer by insertcoinp1 · Mar 15, 2016 at 08:50 PM
I would guess that the problem is that you are using a 64-bit driver. I know that most Android devices still use a 32-bit ARM processor ... I think only about 5% of the market uses 64-bit. Even though we are talking an x64 windows binary, I'd give the 32 bit one a shot and see if that works.
Answer by Falcon_DZ · Mar 16, 2016 at 11:47 AM
@ricardohenrique996 your DB works fine in editor because they will have some dll files which will connect DB with your project but when you build them the dll files will not be exported along with your project. the solution is create folder called as Plugins in assets folder and copy the dll files " I18N.dll" and " I18N.West.dll". then build project it will work fine.