【发布时间】: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