首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Libgdx -无法保存到文件

Android Libgdx -无法保存到文件
EN

Stack Overflow用户
提问于 2016-05-16 02:29:17
回答 1查看 501关注 0票数 3

我为我糟糕的英语感到抱歉。我正在使用libgdx为android开发一个java应用程序。我想写一个文件来保存一些应用程序对象,我正在使用ObjectOutputStream来完成这项工作。以下是代码的摘录:

代码语言:javascript
复制
            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文件夹中,但我在手机中查找了相应的文件夹,但找不到。我在内部和外部存储器中搜索了data/name_of_my_project,但都找不到。和之前一样,我遇到了一个类似的错误,当我无法在android版本中加载皮肤(说皮肤不存在),而我可以在桌面版本中加载皮肤时,我认为我的问题可能与android版本中文件存储的位置有关。有人能给我点建议吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-05-16 06:47:45

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

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

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

对于将对象转换为字符串,这里有另一个答案:How to serialize an object into a string

如果你仍然想写一个文件,你将不得不使用本地存储,这在wiki中有进一步的解释(见最上面的链接)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37242121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档