我在加载assets目录下的xml文件时遇到了问题。我使用了同一行代码(只是更改了路径),但结果不同(有时正常,有时出现NPE /文件损坏)。文件“castle1.tmx”(一个xml文件)被复制到了两个位置:
- res/xml/castle1.tmx
- assets/level/castle1.tmx
XmlResourceParser xrp = ctx.getAssets().openXmlResourceParser("res/xml/castle1.tmx");
使用这一行时,它不会:
XmlResourceParser xrp = ctx.getAssets().openXmlResourceParser("assets/level/castle1.tmx");
我得到以下结果:
04-05 21:46:40.940: WARN/ResourceType(29056): Bad XML block: header size 28024 or total size 1702240364 is larger than data size 70441
04-05 21:46:40.940: ERROR/TestParser(29056): Unable to read resource file
04-05 21:46:40.940: WARN/System.err(29056): java.io.FileNotFoundException: Corrupt XML binary file
04-05 21:46:40.940: WARN/System.err(29056): at android.content.res.AssetManager.openXmlAssetNative(Native Method)
04-05 21:46:40.944: WARN/System.err(29056): at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:485)
04-05 21:46:40.944: WARN/System.err(29056): at android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:453)
04-05 21:46:40.944: WARN/System.err(29056): at android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:442)
04-05 21:46:40.944: WARN/System.err(29056): at game.test.MapLoader.<init>(MapLoader.java:73)
文件在两种情况下都找到了......只是我似乎无法使用这种方法从资产目录读取它。
有什么办法可以从资源目录加载我的 XML 文件吗?
谢谢