Java 安卓Libgdx-can';不能保存在文件中

Java 安卓Libgdx-can';不能保存在文件中,java,android,libgdx,Java,Android,Libgdx,首先,我为我糟糕的英语感到抱歉。 我正在用java为android开发一个应用程序,使用libgdx。 我想写一个文件来保存一些应用程序对象,我正在使用ObjectOutputStream来实现这一点。下面是代码的摘录: try { os_savedGame = new ObjectOutputStream(new FileOutputStream("savedGame.txt")); } catch (FileNo

首先,我为我糟糕的英语感到抱歉。 我正在用java为android开发一个应用程序,使用libgdx。 我想写一个文件来保存一些应用程序对象,我正在使用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文件夹中,但我在手机中查找了相应的文件夹,但找不到它。我在内部和外部内存中搜索了我的项目的数据/名称,但没有找到它。正如之前我遇到过一个类似的错误,当我无法在android版本中加载皮肤(说皮肤不存在)而在桌面版本中加载皮肤时,我认为我的问题可能与文件存储在android版本中的位置有关。有人能给我一个提示吗


谢谢

我建议您阅读官方文件:

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

它提到存储在
资产
文件夹中的文件是只读的。为了保存游戏状态,我建议使用
首选项
API,它允许您存储键值对并轻松检索它们。更多信息请点击此处:

要将对象转换为字符串,这里有另一个答案:


如果仍要写入文件,则必须使用本地存储,这将在wiki中进一步解释(请参阅最上面的链接)。

谢谢您的回答。。。我试图跟踪第一个链接,但没有成功。我已经读过一些关于偏好的内容,但写和读文件是这个游戏的必要条件(老师问的)。无论如何,正如我之前所说,我想我在加载皮肤时也遇到了类似的问题。我得到了以下错误:05-16 14:49:49.235:E/AndroidRuntime(10163):com.badlogic.gdx.utils.GdxRuntimeException:Asset not loaded:uiskin.json at com.badlogic.gdx.assets.AssetManager.get(AssetManager.java:144)at screens.TestScreen.(TestScreen.java:29)at com.mygdx.game.MyGdxGame.create(MyGdxGame.java:27)在com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:290)在android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1505)在android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)中,您的错误是因为您需要从资产管理器加载才能检索文件,请阅读文档(如果您仍然感到困惑,请询问任何问题-我也只是一名15岁的学生:),我正在这样做。它在桌面版本中工作。我只在android版本中有这个错误