Java LibGDX+;日食|能';t加载到.tmx()文件中

Java LibGDX+;日食|能';t加载到.tmx()文件中,java,eclipse,file,libgdx,tmx,Java,Eclipse,File,Libgdx,Tmx,我大约一周前开始使用libGDX,在tmx中加载时遇到问题。平铺地图。 据我所知,游戏没有找到“test.tmx”,但我不知道为什么!就我所见,这条路是正确的 我使用“平铺”作为地图编辑器。图层格式为Base64 这个屏幕截图显示了我用来加载tmx的代码。文件和项目结构: 我收到以下错误消息: Exception in thread "LWJGL Application" com.badlogic.gdx.utils.SerializationException: Error parsing

我大约一周前开始使用libGDX,在tmx中加载时遇到问题。平铺地图。 据我所知,游戏没有找到“test.tmx”,但我不知道为什么!就我所见,这条路是正确的

我使用“平铺”作为地图编辑器。图层格式为Base64

这个屏幕截图显示了我用来加载tmx的代码。文件和项目结构:

我收到以下错误消息:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.SerializationException: Error parsing file: res/map/test.tmx
at com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:83)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:113)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:101)
at de.knightsquest.states.Play.<init>(Play.java:59)
at de.knightsquest.handler.GameStateManager.getState(GameStateManager.java:35)
at de.knightsquest.handler.GameStateManager.pushState(GameStateManager.java:46)
at de.knightsquest.handler.GameStateManager.<init>(GameStateManager.java:20)
at de.knightsquest.game.Game.create(Game.java:38)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: res\map\test.tmx (Internal)
at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:136)
at com.badlogic.gdx.files.FileHandle.reader(FileHandle.java:164)
at com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:81)
... 9 more
线程“LWJGL应用程序”com.badlogic.gdx.utils.SerializationException中的异常:错误解析文件:res/map/test.tmx 位于com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:83) 位于com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:113) 位于com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:101) 在de.knightsquest.states.Play.(Play.java:59) 位于de.knightsquest.handler.GameStateManager.getState(GameStateManager.java:35) 位于de.knightsquest.handler.GameStateManager.pushState(GameStateManager.java:46) 位于de.knightsquest.handler.GameStateManager。(GameStateManager.java:20) 在de.knightsquest.game.game.create(game.java:38) 位于com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136) 位于com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114) 原因:com.badlogic.gdx.utils.GdxRuntimeException:未找到文件:res\map\test.tmx(内部) 位于com.badlogic.gdx.files.FileHandle.read(FileHandle.java:136) 位于com.badlogic.gdx.files.FileHandle.reader(FileHandle.java:164) 位于com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:81) ... 9更多 您应该阅读

您必须将
res\map\test.tmx
放在android项目的
assets
文件夹中。加载地图的方式采用内部(android/assets)文件路径


此外,我建议您通过
AssetManager

加载
tileMap
,假设您遵循了ForeignGuyMike的教程,您将有一个项目,但通常使用LibGDX工具自动生成项目。加载Resources时,LibGDX会在android项目的资产文件夹中查找。不要使用以前的res文件夹,而是使用assets文件夹。 如果您自动生成了项目,那么依赖项都已正确建立,并且通过调用load方法,libgdx将在android项目的资产文件夹中查找该文件。 问题是您的文件路径现在应该只为“maps/test.tmx”,因为它已经在资产文件夹中查找了

总的来说,我想这和上面的答案是一样的。。。
我只是不喜欢移动整个文件夹结构,因为资产是我们的资源…

文件格式正确吗?您如何运行您的项目-您是否将资源导出到buildpath?Thx!是的,这就是问题所在。我将阅读维基文章。:)棒 极 了谢谢!