【问题标题】:XML file doesn't work in Android application when the XML has children/layers?当 XML 有子/层时,XML 文件在 Android 应用程序中不起作用?
【发布时间】:2014-08-24 09:28:03
【问题描述】:

在尝试在 Android 应用程序中解析 XML 文件时,我遇到了一个问题/错误。每当我有一个只有 1 个“层”子级的 xml 文件时,它就可以很好地解析,但是当我有一个包含多个层(子级的子级)的 XML 时,它突然不会解析它。

现在,我知道它与我的解析代码本身无关,因为它在普通 Java 应用程序中 100% 的时间都可以工作,但是当我想将它合并到 Android 应用程序中时,你必须创建 InputStream 等。也许跟这个有关系吗?

这是我启动解析的代码。它永远不会通过 dom = builder.parse(input_src) :

dickbutt = true;

    categories_list = new ArrayList<Category>();
    XML = xml_file;


    //instantiate String object sto be used throughout class
    object_name = object;
    class_type = xml_class;
    value_pointer = pointer;


    //create an input source for the bytestream
    InputStream input_src = activity.getAssets().open(XML);

    //get factory
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();


    //get instance of document builder to build document from xml file
    DocumentBuilder builder = factory.newDocumentBuilder();


    dom = builder.parse(input_src);  //NEVER COMPLETES THIS

    dickbutt = false;


    parseDocument();

我似乎无法添加我的 logcat,因为模拟器无法运行并且无法安装 Google USB 驱动程序。

【问题讨论】:

  • 重启adb。您不需要 Google USB 驱动程序。
  • 每当我启动 ADB 时,我的命令行都会执行一堆命令,然后继续关闭
  • 我找到的解决方案是打开DDMS透视图,在Device窗口中选择设备和正在运行的进程。完成后,LogCat 恢复活力。
  • 任何 logcat 错误?如果不能,您可以尝试放置一些日志行来查找它在哪里停止解析?
  • @iFrey 它停在 dom = builder.parse(input_src);和 dickbutt 永远不会变成假的

标签: java android xml parsing inputstream


【解决方案1】:

我想通了。 XML 文件对于 Android 设备来说太大了。该文件大约有 60k 留置权,一旦我将其修剪下来,它就可以完美运行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多