You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android用DocumentBuilder解析XML文件抛出FileNotFoundException异常

问题原因

你复制的是开发环境下的本地项目源码路径,Android应用安装到设备/模拟器后,APK内的assets目录文件不会以独立磁盘文件的形式存在于这个路径下,直接通过File读取必然找不到文件。

解决方案

使用Android提供的AssetManager读取assets目录下的文件流,再传给DocumentBuilder解析即可,正确代码如下:

try {
    DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    // 通过AssetManager获取assets下文件的输入流
    InputStream inputStream = getAssets().open("local_markers.xml");
    Document document = documentBuilder.parse(inputStream);

    // 后续解析逻辑保持不变

    // 读取完成后关闭流
    inputStream.close();
} catch (ParserConfigurationException ex) {
    ex.printStackTrace(System.out);
} catch (SAXException ex) {
    ex.printStackTrace(System.out);
} catch (IOException ex) {
    ex.printStackTrace(System.out);
}
注意事项
  • 如果是在非Activity类中调用该逻辑,需要传入Context对象,再调用context.getAssets()获取AssetManager实例
  • 确保local_markers.xml文件确实放置在项目的src/main/assets目录下,文件名没有拼写错误、大小写匹配(Android文件系统对大小写敏感)

内容的提问来源于stack exchange,提问作者Oposssum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:24:01