我正在使用谷歌地图路线为我自己的Android应用程序。 2天前它运行良好,但在那之后应用程序运行时它通过logcat给我错误。任何机构都可以告诉我这个问题的原因和解决方案。
org.xml.sax.SAXParseException: unterminated entity ref (position:ENTITY_REF &@1:799 in java.io.InputStreamReader@406cdeb0)
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;
}
答案 0 :(得分:7)
在我的情况下,此问题出现在/ res / drawable文件夹中的.png文件中。这是一个错误,据报道here。所以,为了将来的参考,如果你在一个drawable面对它,检查出来。总而言之,请将ADT更新为至少版本21.0.1。
答案 1 :(得分:2)
我遇到了同样的问题。调试后,我发现它是由'&amp;'引起的字符。应该逃脱
答案 2 :(得分:1)
我不确定但我认为是因为输出= kml不再可用,很多用户都遇到了麻烦。
答案 3 :(得分:0)
错误消息非常具有启发性:ref
标记未终止,例如<ref>
没有封闭的</ref>
对。使用this等工具验证XML输入。
答案 4 :(得分:0)
我自己也遇到了同样的问题。此异常即将发布,因为最近谷歌已弃用了一些重要的KML元素。例如,请参阅GeometryCollection。 如果您的代码试图在收到的文档中找到任何这样的元素,它可能会抛出 SAXParseException:未终止的实体引用
他们为地图引入了新的API。它可用here。
我自己下载了kml文件,并将其存储在设备中。当我看看它 使用编辑器,我没有找到我的代码正在寻找的元素。但是,如果您使用kml文件在最新的Chrome版本中查找路线,则可以使用。
答案 5 :(得分:0)
我遇到了同样的问题。它是在.png图像文件中。编辑文件后出现问题。我搜索了解决方案,但之后我使用“project”选项卡下的“clean ..”选项清理了我的项目。所以最后我摆脱了那个“