gpt4 book ai didi

java - Android Libgdx - 无法保存在文件中

转载 作者:太空狗 更新时间:2023-10-29 13:13:41 26 4
gpt4 key购买 nike

首先我很抱歉我的英语不好。我正在使用 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 文件夹中,但我在手机中查找了相应的文件夹,但没有找到。我在内部和外部存储器中搜索了 data/name_of_my_project,但没有找到。和以前一样,我有一个类似的错误,当我无法在 android 版本中加载皮肤(说皮肤不存在)而我可以在桌面版本中加载皮肤时,我认为我的问题可能与哪里有关文件存储在 android 版本中。有人可以给我一些提示吗?

谢谢!

最佳答案

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

Internal files are relative to the application’s root or working directory on desktops, relative to the assets directory on Android, and relative to the core/assets/ directory of your GWT project. These files are read-only.

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

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

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

关于java - Android Libgdx - 无法保存在文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37242121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com