未找到libGDX android资源文件

时间:2016-11-11 18:06:44

标签: android libgdx

我在桌面上测试我的应用程序(使用Android,核心和桌面模块),一切正常。

现在我尝试在Android上运行,它给了我FileNotFound。我在桌面上运行之前将android资产链接到desktopLauncher,但是我是不是想为android做类似的事情?

            File file = Gdx.files.internal("liver_initial_joints.json").file();
            FileInputStream fis = new FileInputStream(file);
            byte[] data = new byte[(int) file.length()];
            fis.read(data);
            fis.close();

            str = new String(data, "UTF-8");

我的文件位于... / android / assets / liver_initial_joints.json

2 个答案:

答案 0 :(得分:1)

Android不提供对内部app目录的直接java.io.File访问。如果您查看libgdx的FileHandle.file()的javadoc,您会发现它说除了绝对和外部类型的文件之外它不可用。

如果您只需要读取字符串或字节数组,则可以使用fileHandle.readString()fileHandle.readBytes()。如果您需要输入流,请使用fileHandle.read();

例如:

        byte[] data = Gdx.files.internal("liver_initial_joints.json").read();
        str = new String(data, "UTF-8");

答案 1 :(得分:1)

我发现一个非常简单的方法是:

InputStream is = context.getAssets().open("liver_initial_joints.json");