C# 在Android设备上从Unity3D访问SQLite数据库时出现问题

C# 在Android设备上从Unity3D访问SQLite数据库时出现问题,c#,sqlite,unity3d,database-connection,C#,Sqlite,Unity3d,Database Connection,我在我的Unity3D项目中添加了一个SQLite数据库,当我在Unity编辑器上工作时,所有这些都可以正常工作,但是当我在Android设备上测试游戏时,对数据库的访问失败了。 有没有人有同样的问题,可以告诉我如何解决 代码示例如下: using UnityEngine; using System.Collections; using Mono.Data.Sqlite; using System.Data; public class DBAccess : MonoBehaviour {

我在我的Unity3D项目中添加了一个SQLite数据库,当我在Unity编辑器上工作时,所有这些都可以正常工作,但是当我在Android设备上测试游戏时,对数据库的访问失败了。 有没有人有同样的问题,可以告诉我如何解决

代码示例如下:

using UnityEngine;
using System.Collections;
using Mono.Data.Sqlite;
using System.Data;

public class DBAccess : MonoBehaviour {

    void Start () {

        string connectionString = "URI=file:" +Application.dataPath + "/myDataBase"; //Path to database.
        IDbConnection dbcon;
        dbcon = (IDbConnection) new SqliteConnection(connectionString);

        dbcon.Open(); //Open connection to the database.

        IDbCommand dbcmd = dbcon.CreateCommand();

        string sql = "SELECT firstname, lastname FROM addressbook";

        dbcmd.CommandText = sql;

        IDataReader reader = dbcmd.ExecuteReader();

        while(reader.Read()) {
            string FirstName = reader.GetString (0);
            string LastName = reader.GetString (1);
            Debug.Log (FirstName + LastName);
        }

        // clean up
        reader.Close();
        reader = null;
        dbcmd.Dispose();
        dbcmd = null;
        dbcon.Close();
        dbcon = null;
    }
}
我在这个论坛的其他帖子中读到,其他人在构建时遇到了麻烦,这不是我的情况,我可以生成apk

我已经在两个不同的设备上测试过,结果相同,所以我认为这不是设备的问题

我正在使用MonoDevelop作为IDE,Unity3D和Sqlite 3.8.9的5.0.1版本,所有这些都是在一台装有windows 8.1的笔记本电脑上进行的


提前谢谢。

我终于让它工作了。问题是,至少在我的例子中,Android是基于Linux架构的,所以它不能与.dll库一起工作,我必须使用.so librerie。MonoDevelop自己的库不会发生这种情况;我猜这会在构建中转换这些库,但不会使用外部库,如sqlite3.dll

我把这个.so文件放到/Assets/Plugins/Android中,Unity会自动找到它;在inspector中,我必须在“为puglin选择平台”中选择“Android”,在CPU中选择“AR Mv 7”。我希望这对其他有同样问题的人有用


既然.so library不在SQLite的官方网站上,如果有人需要它,请给我发一条消息,我会通过邮件发送。

访问失败的原因是什么?好吧,视频游戏只是停止运行,它“冻结”了,所以你用它替换了Sqlite3.dll。那么library和上面的代码工作了吗?是的,至少在我的情况下是这样。如果对你不起作用,请告诉我,我会尽力帮助你。