使用SQLite修复未找到的数据路径错误

时间:2016-09-02 14:18:54

标签: android sqlite unity3d

我已经在编辑器中使用了sqlite数据库就好了。但是在Android中使用它时,我收到一条错误,指出找不到数据路径。

我相信我在正确的plugins / android文件夹中有所需的libsqlite.so文件以及编辑器查找的其他DLL。

这是我的代码:

string filepath = Application.dataPath + "/" + "Players.db"; //.db

if(!File.Exists(filepath))
{
    // if it doesn't ->
    // open StreamingAssets directory and load the db ->

    try {
        WWW loadDB = new WWW ("jar:file://" + Application.persistentDataPath + "!/Assets/" + "StreamingAssets/Players.db");  // .db this is the path to your StreamingAssets in android

        while (!loadDB.isDone) {
        }  // CAREFUL here, for safety reasons you shouldn't let this while loop unattended, place a timer and error check

        // then save to Application.persistentDataPath

        File.WriteAllBytes (filepath, loadDB.bytes);
    } catch (Exception ex) {
        GameObject.Find ("Advice").GetComponent<Text> ().text = ex.Message;
    }
}

1 个答案:

答案 0 :(得分:1)

您正在使用Application.DataPath来保存文件。在编辑器模式下,它引用Assets文件夹但在android构建中它引用的是APK包,它是一个压缩文件而你无法访问它。所以请改用Application.persistentDataPath

string filepath = Application.persistentDataPath + "/" + "Players.db"; //.db