BodyEditorLoader - 错误读取文件

时间:2015-02-12 05:05:28

标签: java android json libgdx

所以我最近开始在 Android Studio 中学习 libgdx 。我正在使用像 box2d 这样的扩展程序。要在对象周围创建一些漂亮的边框,我使用物理主体编辑器。所以,由于我自己的代码中存在许多错误,我刚从这里复制了一个:Code Sample。但是,我仍然在以下一行收到错误:

BodyEditorLoader loader = new BodyEditorLoader(Gdx.files.internal("tankA.json"));

文件 tankA.json 位于我的资源文件夹中。

这是我的错误:

02-12 08:27:52.216  13720-13734/com.tynibattles04.game.android E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 6581
Process: com.tynibattles04.game.android, PID: 13720
com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: tankA.json (Internal)
        at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:77)
        at com.badlogic.gdx.files.FileHandle.length(FileHandle.java:605)
        at com.badlogic.gdx.backends.android.AndroidFileHandle.length(AndroidFileHandle.java:220)
        at com.badlogic.gdx.files.FileHandle.estimateLength(FileHandle.java:233)
        at com.badlogic.gdx.files.FileHandle.readString(FileHandle.java:198)
        at com.badlogic.gdx.files.FileHandle.readString(FileHandle.java:191)
        at aurelienribon.bodyeditor.BodyEditorLoader.<init>(BodyEditorLoader.java:41)
        at com.tynibattles04.game.TinyBattles.createBottle(TinyBattles.java:127)
        at com.tynibattles04.game.TinyBattles.create(TinyBattles.java:74)
        at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:241)
        at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1512)
        at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
 Caused by: java.io.FileNotFoundException: tnkA.json
        at android.content.res.AssetManager.openAsset(Native Method)
        at android.content.res.AssetManager.open(AssetManager.java:355)
        at android.content.res.AssetManager.open(AssetManager.java:329)
        at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:75)

你知道我能做些什么吗? 提前谢谢!

我在错误代码中意外拼错了 tankA.json - 感谢 Angel Angel 。但我仍然得到同样的错误。也许这会导致 BodyEditorLoader 出错?

1 个答案:

答案 0 :(得分:1)

检查文件名以及用于加载的名称,然后说:

BodyEditorLoader loader = new BodyEditorLoader(
                          Gdx.files.internal("tankA.json"));

但是在堆栈中说:

com.badlogic.gdx.utils.GdxRuntimeException: 
                        Error reading file: 
                        tnkA.json (Internal)

这可能是文件名中的错误: tnkA.json

注意:可能在您的代码中使用, tnkA.json ,而不是 tankA.json ,如您所愿。

希望它有所帮助。