2015-01-25 2 views
0

Я следую учебнику по youtube о том, как сделать андроид (возможно, но не могу надеяться на совместимость) и iOS, используя LibGDX, и я столкнулся с проблемой доступа к файлу .tmx из моя папка res.Недопустимый путь к файлу на TmxMapLoader.load()

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

используя код выше, я понял, что приложение найдет мой .tmx файл в моей папке Реза, но я должен давать ему неверную информацию о том, как найти файл, который я уже открыт в другой вкладке. вот скриншот метода поиска, вызванного двойным сдвигом. http://imgur.com/PYd9Y5T

screenshot of the search method called by hitting shift twice

Я вижу файл в методе поиска, но независимо от того, что я, кажется, введите я не могу найти 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) 

ответ

0

тест этого скопируйте актив вашей игры , перейдите в папку Android-проекта, так как это работает, LibGDX - это то, что вики LibGDX, об этом поговорим, но я не помню, где, попробуйте поместить файл .tmx внутри папки:

AndroidProyect -> актив -> maps -> yourmap.tmx.

и попытаться назвать:

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

в вашем случае, ресурсы должны идти в папке проекта Asset Android. Пока наш код будет в завершении проекта «Core».

+0

Большое спасибо ангелу. Я чувствую себя таким глупым. Я продолжал думать, что я не был конкретным в отношении файла, но на самом деле я был слишком конкретным. Я создал свою собственную папку res в ядре и продолжал пытаться ссылаться на нее (com/mac/elev/core/res) или другие самостоятельные записи в течение часа, но ваше простое решение сработало. – Mac

Смежные вопросы