Unity - 文件不能在Android上书写?

时间:2015-07-31 16:42:16

标签: android unity3d save

我一直试图让这个工作在最后几个小时里工作,这让我疯了。

我有一个设置方法来保存数据,这可以在PC上完美运行,但是,在Android上它不会写入文件。这是我的代码:

 public void Save()
{
    string data = buildJson();

    File.WriteAllText(Application.persistentDataPath + "/playerSave.json", data);
    Debug.Log("File Saved: " + Application.persistentDataPath + "/playerSave.json");
}

不确定为什么它不起作用。从我可以告诉读取其他线程,使用Application.persistantDataPath是正确的事情。

任何帮助?

3 个答案:

答案 0 :(得分:0)

在android上File.WriteAllText(Application.persistentDataPath +" /playerSave.json",数据)会在你的 sd卡上写入数据你需要添加权限 android清单文件中的.permission.WRITE_EXTERNAL_STORAGE 。由unity创建的默认清单文件不会添加此权限。

答案 1 :(得分:0)

如果WriteAllText失败,则会抛出异常。为什么不尝试捕获异常并检查错误是什么?

答案 2 :(得分:0)

解决。

我的问题是该方法甚至没有被正确调用。

我创建了一个单独的游戏对象,其中包含我的保存方法的脚本,但我没有使用引用来保存它,这意味着它只有在我在同一场景中调用save方法时才有效gameobject已创建。 (当我在Unity编辑器中跳过我的菜单场景时就是这种情况,但是当我在应用程序中测试它时却不是这样)