繁体   English   中英

Android Libgdx - 无法保存在文件中

[英]Android Libgdx - can't save in file

Firstable我很抱歉我的英语很差。 我正在使用libgdx在java中为android开发一个应用程序。 我想写一个文件来保存一些应用程序对象,我正在使用ObjectOutputStream来做到这一点。 以下是代码的摘录:

            try {
                os_savedGame = new ObjectOutputStream(new FileOutputStream("savedGame.txt"));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            try {
                os_savedGame.writeObject(obj1);
                os_savedGame.writeObject(obj2);
            } catch (IOException e) {
                 e.printStackTrace();
            }

我把它作为桌面应用程序运行,到目前为止很好,但是当我尝试作为Android应用程序运行时,我收到以下错误:尝试调用虚方法'void java.io.ObjectOutputStream.writeObject(java.lang.Object) '在空对象引用上

我知道在桌面版上,该文件存储在android \\ assets文件夹中,但是我在手机中查找了相应的文件夹,但是找不到它。 我在内部和外部内存中搜索数据/ name_of_my_project,但我无法找到它。 以前我有一个类似的错误,当我无法加载Android版本的皮肤(说皮肤不存在),而我可以在桌面版本,我认为我的问题可能是相关的地方文件存储在Android版本中。 请问有人给我一个提示吗?

谢谢!

我建议您阅读官方文档: https//github.com/libgdx/libgdx/wiki/File-handling

内部文件相对于桌面上的应用程序根目录或工作目录,相对于Android上的资产目录,以及相对于GWT项目的core / assets /目录。 这些文件是只读的。

它提到存储在assets文件夹中的文件是只读的。 为了保存游戏状态,我建议使用Preferences API,它允许您存储键值对并轻松检索它们。 更多信息请访问: https//github.com/libgdx/libgdx/wiki/Preferences

将对象转换为字符串是另一回答: 如何将对象序列化为字符串

如果您仍想写入文件,则必须使用本地存储,这将在wiki中进一步说明(请参阅最顶层链接)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM