我在从Local(从LibGdx定义)读取文件时遇到问题,虽然它可以正常写入。
更令人不安的是,我可以在一个场景中成功读取文件,但在另一个场景中没有。 成功的方法是使用从FileHandle获取的InputStream读取文件。
InputStream is = mapFile.read();
StringWriter writer = new StringWriter();
IOUtils.copy(is, writer, "utf-8");
String theString = writer.toString();
hash = new String(Hex.encodeHex(DigestUtils.md5(theString)));
Gdx.app.debug(TAG, hash);
当我尝试使用TmxLoader加载.tmx地图时,不起作用的是:
map = new TmxMapLoader(new LocalFileHandleResolver()).load(mapFile.path());
com.badlogic.gdx.utils.SerializationException: Error parsing file: /data/data/com.mycompany.myapp.android/files/Downloads/Maps/Smallwoods2 (61)/map.tmx
at com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:83)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:78)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:65)
at com.mycompany.myapp.game.maps.GameMap.<init>(GameMap.java:130)
at com.mycompany.myapp.game.maps.GameMapManager.loadMap(GameMapManager.java:56)
at com.mycompany.myapp.game.maps.GameMapManager.access$000(GameMapManager.java:15)
at com.mycompany.myapp.game.maps.GameMapManager$1.run(GameMapManager.java:123)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:452)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1522)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: /data/data/com.mycompany.myapp.android/files/Downloads/Maps/Smallwoods2 (61)/map.tmx (Local)
at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:136)
at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:80)
at com.badlogic.gdx.files.FileHandle.reader(FileHandle.java:163)
at com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:81)
我甚至使用adb shell进入数据目录并验证该文件是否存在。
如果我使用内部文件,它也可以正常工作。
编辑:我在Android上运行
答案 0 :(得分:0)
好的,所以我经常解决自己的问题。
问题是我传递的是绝对路径,但是当使用LocalFileResolver时,你只需传递相对路径。
所以我传递了
/data/data/com.mycompany.myapp.android/files/Downloads/Maps/Smallwoods2 (61)/map.tmx
但我应该一直在传递
Downloads/Maps/Smallwoods2 (61)/map.tmx