LibGDX:为什么 Gdx.files.internal() 有效而 Gdx.files.local() 无效?
LibGDX: Why is Gdx.files.internal() working and Gdx.files.local() not?
嗨,我正尝试在 Android 上 运行 一个 LibGDX 应用程序,我尝试在需要 read/write 访问权限的地方加载一个 JSON 文件。
该文件在资产文件夹中。
当我尝试使用 Gdx.files.local("file.json") 加载它时,它说无法找到它(它适用于 Gdx.files.internal(),但是随后它被读取-仅)。
实际上,这在另一个项目中效果很好,但不知何故,现在却不行了。
我搜索了一个答案,但找不到任何答案,你知道如何解决这个问题吗?
根据 documentation of Libgdx FileHandle
types,Local
和 Internal
FileHandle
在后台使用不同的路径:
- Internal
FileHandle
是相对于 Android 上的资产目录的,并且可以回退到 ClassPath
FileHandle
。它始终是只读的!
- Local
FileHandle
与 Android 上的内部(私有)应用程序存储相关。你可以用这个FileHandle
来读写。
所以基本上不可能写入内部存储中的文件,而是使用本地存储。
由于您希望 "ship" 此文件与您的应用程序一起使用,因此您可能希望在应用程序首次启动时将其从内部存储复制到本地存储,以便应用程序对其具有读写权限。
嗨,我正尝试在 Android 上 运行 一个 LibGDX 应用程序,我尝试在需要 read/write 访问权限的地方加载一个 JSON 文件。
该文件在资产文件夹中。
当我尝试使用 Gdx.files.local("file.json") 加载它时,它说无法找到它(它适用于 Gdx.files.internal(),但是随后它被读取-仅)。
实际上,这在另一个项目中效果很好,但不知何故,现在却不行了。
我搜索了一个答案,但找不到任何答案,你知道如何解决这个问题吗?
根据 documentation of Libgdx FileHandle
types,Local
和 Internal
FileHandle
在后台使用不同的路径:
- Internal
FileHandle
是相对于 Android 上的资产目录的,并且可以回退到 ClassPath
FileHandle
。它始终是只读的!
- Local
FileHandle
与 Android 上的内部(私有)应用程序存储相关。你可以用这个FileHandle
来读写。
所以基本上不可能写入内部存储中的文件,而是使用本地存储。
由于您希望 "ship" 此文件与您的应用程序一起使用,因此您可能希望在应用程序首次启动时将其从内部存储复制到本地存储,以便应用程序对其具有读写权限。