问题描述
||
以下方法接收XML文件和Xpath表达式,并将结果作为字符串数组返回。它旨在在使用API级别4(Android 1.6)的android设备上运行。问题是,在模拟器上运行java.lang.VerifyError时,我总是不断收到它。
关于什么可能是错的任何想法?
@SuppressWarnings(\"unchecked\")
private String[] evaluate(File file,String exp) {
String[] values = null;
try{
SAXReader reader = new SAXReader();
//new line added because xpath not supported on oppaz android 1.6
org.dom4j.Document doc = reader.read(file);
java.util.List<Node> nl = null;
try{
//An error is always generated here java.lang.VerifyError
nl = doc.selectNodes(exp);
}
catch(java.lang.VerifyError e){
System.out.println(\"The following error occurred Mayne\");
e.printstacktrace();
}
Object[] obj = nl.toArray();
int j = obj.length;
//Find out how many nodes were returned
values =new String[j];
for(int i=0;i<j;i++){
Element element = (Element) nl.get(i);
NodeList nl2 = element.getChildNodes();
String value = ((Node) nl2.item(0)).getNodeValue();
values[i] = value;
}
}
catch(Exception e){
e.printstacktrace();
}
return values;
}
解决方法
我遇到了同样的问题。对于那些感兴趣的人,这是我解决的方法。除了dom4j之外,您还需要安装jaxen才能使XPath在android中工作。下载Jaxen,添加jaxen * .jar以构建路径,这应该可以解决您的问题。在此处获取更多信息释放的力量:使用Dom4j和JaxeIn的Android上的XML + XPath。如果您打算使用2.2以下的XPath,这将很有用。 Android 2.2具有内置的XPath功能