Я следую учебнику по youtube о том, как сделать андроид (возможно, но не могу надеяться на совместимость) и iOS, используя LibGDX
, и я столкнулся с проблемой доступа к файлу .tmx из моя папка res.Недопустимый путь к файлу на TmxMapLoader.load()
tileMap = new TmxMapLoader().load("res/level1.tmx");
используя код выше, я понял, что приложение найдет мой .tmx файл в моей папке Реза, но я должен давать ему неверную информацию о том, как найти файл, который я уже открыт в другой вкладке. вот скриншот метода поиска, вызванного двойным сдвигом. 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)
Большое спасибо ангелу. Я чувствую себя таким глупым. Я продолжал думать, что я не был конкретным в отношении файла, но на самом деле я был слишком конкретным. Я создал свою собственную папку res в ядре и продолжал пытаться ссылаться на нее (com/mac/elev/core/res) или другие самостоятельные записи в течение часа, но ваше простое решение сработало. – Mac