未终止的实体引用错误
我正在使用谷歌地图路由为我自己的Android应用程序。 2天前它运行良好,但之后,当应用程序运行通过logcat给我错误。任何机构能告诉我这个问题的原因和解决方案吗?未终止的实体引用错误
org.xml.sax.SAXParseException: unterminated entity ref (position:ENTITY_REF &@1:799 in [email protected])
private String[] getDirectionData(String sourceLat, String sourceLong, String destinationLat, String destinationLong) {
String urlString = "http://maps.google.com/maps?f=d&hl=en&" +"saddr="+sourceLat+","+sourceLong+"&daddr="+destinationLat+","+destinationLong + "&ie=UTF8&0&om=0&output=kml";
Log.d("URL", urlString);
Document doc = null;
HttpURLConnection urlConnection = null;
URL url = null;
String pathConent = "";
try {
url = new URL(urlString.toString());
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.connect();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(urlConnection.getInputStream());
} catch (Exception e) {
Log.w("Error in google map",e);
}
NodeList nl = doc.getElementsByTagName("LineString");
for (int s = 0; s < nl.getLength(); s++) {
Node rootNode = nl.item(s);
NodeList configItems = rootNode.getChildNodes();
for (int x = 0; x < configItems.getLength(); x++) {
Node lineStringNode = configItems.item(x);
NodeList path = lineStringNode.getChildNodes();
pathConent = path.item(0).getNodeValue();
}
}
String[] tempContent = pathConent.split(" ");
return tempContent;
}
我自己面临同样的问题。这个例外即将到来是因为一些重要的KML元素最近被谷歌弃用了。例如,请参阅GeometryCollection。 如果您的代码尝试在接收到的文档中找到任何这样的元素,它可能会抛出一个SAXParseException:未终止的实体参考 。
他们已经为Maps推出了一个新的API。它可用here。
我自己下载了kml文件,并将其存储在设备中。当我使用编辑器查看它 时,我没有找到我的代码正在寻找的元素。但是,如果您使用kml文件在最新的Chrome版本中查找路线,则该路线有效。
在我的情况下,这个问题出现在/ res/drawable文件夹中的.png文件中。这是一个错误,它被报告为here。所以,为了将来的参考,如果你正在面对一个drawable,请检查一下。总结一下,更新你的ADT,至少是版本21.0.1。
您的问题可以通过清理项目构建(Project | Clean ... |并选择清理项目)来解决。 – Aryo 2013-01-09 12:38:33
谢谢,这对我有帮助。如果干净的项目不起作用,则尝试通过右键单击并打开一个.png文件,然后选择“使用 - 在位编辑器打开”。关闭编辑器窗口后,错误消失了。 – 2013-03-12 16:12:25
我得到了同样的问题。它在一个.png图像文件中。编辑文件后出现问题。我搜索了解决方案,但在此之后,我使用“项目”选项卡下的“clean ..”选项清理了我的项目。所以最后我摆脱这“
我也遇到了同样的问题。经过调试,我发现,它是由‘&’性格造成的。它应该被转义
我有同样的问题,取代&为&在我的XML解决了它,谢谢 – 2014-05-28 20:56:55
当我不发布字符串与“&”一切都很好。我的问题是我如何在发送请求之前转义java中的字符。 – TWeeKeD 2017-05-23 01:49:40
添加一些代码和图片地址你的问题 – hasanghaforian 2012-07-29 06:00:51
哦,找到完美的答案在这个论坛[链接到匹配的答案] [1] [1]:http://*.com/questions/11745314/why-retrieving-google-directions -for-android-using-kml-data-is-not-working-anymo – 2red13 2012-11-27 15:41:11