Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Libgdx安卓可以';无法从本地文件读取_Java_Android_Libgdx - Fatal编程技术网

Java Libgdx安卓可以';无法从本地文件读取

Java Libgdx安卓可以';无法从本地文件读取,java,android,libgdx,Java,Android,Libgdx,我的libgdx应用程序无法在android上读取“本地”文件。在libgdxwiki上,它表示本地文件是相对于应用程序的根目录或工作目录存储的。但我不知道这是什么原因:/ 我的文件存储在我的项目的资产文件夹中 XmlReader.Element root = reader.parse(Gdx.files.local("gamedata.xml")); 在桌面上,这行代码运行良好,但在android上,应用程序崩溃,因为它无法读取文件。 我试过使用Gdx.files.internal,但它是只

我的libgdx应用程序无法在android上读取“本地”文件。在libgdxwiki上,它表示本地文件是相对于应用程序的根目录或工作目录存储的。但我不知道这是什么原因:/

我的文件存储在我的项目的资产文件夹中

XmlReader.Element root = reader.parse(Gdx.files.local("gamedata.xml"));
在桌面上,这行代码运行良好,但在android上,应用程序崩溃,因为它无法读取文件。 我试过使用
Gdx.files.internal
,但它是只读的,我需要在这个文件上写

我的应用程序有这些权限(我不知道它是否真的有用):



我做错了什么?我应该将xml文件存储在其他地方吗?

在桌面操作系统和Android操作系统上,Libgdx的用法不同

简单地说,有三个存储位置:apk资产(资源)文件夹内部存储外部存储。不同的存储方案需要不同的权限


我建议您阅读,它对如何在android操作系统上通过Libgdx处理文件IO给出了详细而良好的解释。

为了解决我的问题,我在首次发布时添加了一条if语句

如果没有
本地
文件,它将创建一个并从
内部
文件中获取数据。 然后,当应用程序保存时,它将数据存储在
local
文件中

不需要权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />