TmxMapLoader.load() 上的文件路径无效

Invalid Filepath on TmxMapLoader.load()

我正在关注有关如何使用 LibGDX 制作 android(可能不是,但我希望兼容性)和 iOS 游戏的 youtube 教程,我遇到了一个问题从我的 res 文件夹访问 .tmx 文件。

tileMap = new TmxMapLoader().load("res/level1.tmx");

使用上面的代码,我认为应用程序会在我的 res 文件夹中找到我的 .tmx 文件,但我必须向它提供有关如何查找我在另一个选项卡中打开的文件的错误信息。这是通过按两次 shift 调用的搜索方法的屏幕截图。 http://imgur.com/PYd9Y5T

我在搜索方法中看到了文件,但无论我输入什么我都找不到 level1.tmx

 01-24 20:14:01.717  10013-10040/com.mac.elevator.android E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 60898
    Process: com.mac.elevator.android, PID: 10013
    com.badlogic.gdx.utils.SerializationException: Error parsing file: res/level1.tmx
            at com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:83)
            at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:92)
            at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:80)
            at com.mac.elevator.com.mac.elevator.states.Play.<init>(Play.java:91)
            at com.mac.elevator.handlers.GameStateManager.getState(GameStateManager.java:35)
            at com.mac.elevator.handlers.GameStateManager.pushState(GameStateManager.java:45)
            at com.mac.elevator.handlers.GameStateManager.<init>(GameStateManager.java:22)
            at com.mac.elevator.Game.create(Game.java:46)
            at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:241)
            at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1521)
            at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1249)
     Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: res/level1.tmx (Internal)
            at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:77)
            at com.badlogic.gdx.files.FileHandle.reader(FileHandle.java:163)
            at com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:81)
            at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:92)
            at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:80)
            at com.mac.elevator.com.mac.elevator.states.Play.<init>(Play.java:91)
            at com.mac.elevator.handlers.GameStateManager.getState(GameStateManager.java:35)
            at com.mac.elevator.handlers.GameStateManager.pushState(GameStateManager.java:45)
            at com.mac.elevator.handlers.GameStateManager.<init>(GameStateManager.java:22)
            at com.mac.elevator.Game.create(Game.java:46)
            at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:241)
            at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1521)
            at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1249)
     Caused by: java.io.FileNotFoundException: res/level1.tmx
            at android.content.res.AssetManager.openAsset(Native Method)
            at android.content.res.AssetManager.open(AssetManager.java:316)
            at android.content.res.AssetManager.open(AssetManager.java:290)
            at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:75)

测试一下,复制你的游戏资源,转到 Android 项目的文件夹,因为它是这样工作的,LibGDX,是维基 LibGDX,谈论这个但我不记得在哪里,尝试将文件 .tmx 放在文件夹中:

AndroidProyect -> asset -> maps -> yourmap.tmx.

并尝试调用它:

tileMap = new TmxMapLoader().load("maps/level1.tmx");

在您的情况下,资源应该放在资产 Android 项目文件夹中。而我们的代码会在项目完成"Core".