作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我无法从 Assets 目录加载 xml 文件。使用同一行代码(只是更改路径)我得到不同的结果(正常或 NPE/文件损坏)文件“caSTLe1.tmx”(它是一个 xml 文件)被复制到两个位置:
有了这条线,它就可以工作了:
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)
在这两种情况下都找到了文件...只是我似乎无法使用该方法从 Assets 目录中读取它..
任何想法如何从 Assets 目录加载我的 xml 文件?
tnx
最佳答案
在 res/
文件夹中,所有 xml 文件都是预编译的,而在 assets/
文件夹中则不是。因此,您不能将 openXmlResourceParser()
与非预编译资源一起使用。而是使用 open()
并通过 InputStream
读取文件。
关于android:如何从 assets 目录加载 xml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5557885/
我是一名优秀的程序员,十分优秀!