此bounty已结束。回答此问题可获得+50声望奖励。赏金宽限期21小时后结束。amodkanthe正在寻找一个答案从一个有信誉的来源。
Android XML解析器抛出Exception java.lang.AssertionError:
错误。我怀疑下面是从com.android.org.kxml2.io.KXmlParser
包抛出这个错误的代码。
Link to the code file**行号:**192
Android SDK有什么问题吗?或者我需要更改依赖项吗?
下面是我的xml解析代码
try {
while (xmlPullParser.next() != XmlPullParser.END_TAG) {
if (xmlPullParser.getEventType() == XmlPullParser.END_DOCUMENT) {
throw new XmlPullParserException("XML END tag is missing");
}
if (xmlPullParser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = xmlPullParser.getName();
if (containsIn(name, tagNames)) {
doSomething();
} else {
skip();
}
}
} catch (XmlPullParserException | IOException e) {
parseExceptionConsumer.accept(e);
}
我在用
compileSdk 32
defaultConfig {
minSdkVersion 19
targetSdkVersion 32
versionCode 1
versionName project.version
multiDexEnabled true
}
以下是错误日志
Exception java.lang.AssertionError:
at com.android.org.kxml2.io.KXmlParser.readEntity (KXmlParser.java:1192)
at com.android.org.kxml2.io.KXmlParser.readValue (KXmlParser.java:1402)
at com.android.org.kxml2.io.KXmlParser.next (KXmlParser.java:393)
at com.android.org.kxml2.io.KXmlParser.next (KXmlParser.java:313)
2条答案
按热度按时间v1l68za41#
堆栈跟踪表明,
AssertionError
被抛出是因为解析器试图读取一个XML entity reference(例如:"
),但实体不是以&
开头。要查明这是由解析代码还是由无效的XML引起的,必须提供XML(如注解中所要求的)。hyrbngr72#
尝试在解析到XML解析器之前转义响应XML字符串