我的libgdx应用无法在android上读取“本地”文件。在libgdx Wiki上,它表示本地文件是相对于应用程序的根目录或工作目录存储的。但我不知道这是什么东西:/
我的文件存储在我的projet的Assets文件夹中
XmlReader.Element root = reader.parse(Gdx.files.local("gamedata.xml"));
在桌面上,此行运行良好,但在android上,该应用程序崩溃,因为它无法读取文件。
我尝试使用Gdx.files.internal
,但它是只读的,我需要在此文件上写。
我的应用具有这些权限(我不知道它是否真的有用):
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我在做什么错?我应该将xml文件存储在其他位置吗?
答案 0 :(得分:1)
在台式机操作系统和Android操作系统上,Libgdx的用法不同。
简单地说,存在三个存储位置: apk资产(资源)文件夹,内部存储,外部存储。不同的存储方案需要不同的权限。
我建议您阅读official doc about File handling,其中提供了有关如何在Android OS上通过Libgdx处理文件IO的详细而详尽的解释。
答案 1 :(得分:0)
为解决我的问题,我在首次启动时添加了if语句。
如果没有local
文件,它将创建一个文件并从internal
中获取数据。
然后,在应用保存时,它将数据存储在local
文件中。
不需要权限