gpt4 book ai didi

android:如何从 assets 目录加载 xml 文件?

转载 作者:IT老高 更新时间:2023-10-28 23:28:59 26 4
gpt4 key购买 nike

我无法从 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)

在这两种情况下都找到了文件...只是我似乎无法使用该方法从 Assets 目录中读取它..

任何想法如何从 Assets 目录加载我的 xml 文件?

tnx

最佳答案

res/ 文件夹中,所有 xml 文件都是预编译的,而在 assets/ 文件夹中则不是。因此,您不能将 openXmlResourceParser() 与非预编译资源一起使用。而是使用 open() 并通过 InputStream 读取文件。

关于android:如何从 assets 目录加载 xml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5557885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com