2012-07-29 10 views
5

Ich verwende google map route für meine eigene Android-Anwendung. Vor 2 Tagen hat es gut geklappt, aber danach, wenn die Anwendung läuft, gibt es mir Fehler über logcat. Kann mir irgendein Körper einen Grund und eine Lösung für dieses Problem nennen?Nicht abgeschlossene Entity-Referenzfehler

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; 
} 
+0

einige Ihrer Code hinzufügen und Bildadresse maskiert werden sollte auf Ihre Frage – hasanghaforian

+0

oh, perfekte Antwort in diesem Forum [Link zur passenden Antwort] [1] gefunden [1]: http://stackoverflow.com/questions/11745314/why-retrieving-google-directions -for-android-using-kml-Daten-ist-nicht-arbeiten-anymo – 2red13

Antwort

0

die Fehlermeldung ist ziemlich eindruck: Der Tag ist ref unterminierte, z.B. Die <ref> hat kein umschließendes </ref> Paar. Validieren Sie Ihre XML-Eingabe mit einem Tool wie this.

+1

nicht sinnvoll, das Problem ist klar, aber die Antwort wird von Google validiert und der Code ist in der Tat läuft seit Juni nicht. Ich suche nach dem gleichen Problem – 2red13

+0

@ 2red13 was ist deine Antwort auf meine Antwort? – 10101010

1

Ich weiß nicht sicher, aber ich denke, weil Ausgabe = kml nicht mehr verfügbar ist, haben viele Benutzer Probleme damit.

+0

http://stackoverflow.com/questions/11745314/why-retrieving-google-directions-for-android-using-kml-data-is-not-working-anymo – 2red13

+0

Wenn Sie einen Link in Ihrem Browser, der kml schreiben Ding funktioniert einfach gut. Dies deutet darauf hin, dass es ein Problem mit der Codierung gibt. Ich stehe vor dem gleichen Problem, dem gleichen Code, aber ich war mir nicht sicher, ob es einige Tage zuvor eine Ausgabe gab. – 10101010

0

Ich war selbst mit dem gleichen Problem konfrontiert. Diese Ausnahme kommt, weil einige wichtige KML-Elemente kürzlich von Google abgelehnt wurden. Siehe zum Beispiel GeometryCollection. Wenn Ihr Code versucht, solche Elemente im empfangenen Dokument zu finden, kann er eine SAXParseException: untermined entity ref.

Sie haben eine neue API für Maps eingeführt. Es ist verfügbar here.

Ich habe selbst die kml-Datei heruntergeladen und im Gerät gespeichert. Als ich es mit dem Editor betrachtete, fand ich nicht das Element, nach dem mein Code suchte. Wenn Sie jedoch die kml-Datei verwenden, um eine Route in der neuesten Chrome-Version zu finden, funktioniert sie.

7

In meinem Fall erschien dieses Problem auf eine PNG-Datei in/res/Zeichnungsordner. Es ist ein Fehler, und es wurde berichtet here. Also, wenn Sie es in Zukunft auf eine Zeichnung beziehen, sollten Sie das überprüfen. Um es zusammenzufassen, aktualisieren Sie Ihren ADT mindestens auf die Version 21.0.1.

+9

Ihr Problem kann gelöst werden, indem Sie Ihren Projektaufbau reinigen (Projekt | Säubern ... | und wählen Sie Ihr Projekt zum Säubern). – Aryo

+0

Danke das hat mir geholfen. Wenn das Clean-Projekt nicht funktioniert, versuchen Sie, eine .png-Datei zu öffnen, indem Sie mit der rechten Maustaste darauf klicken und "Öffnen mit - In-Place-Editor" wählen. Nach dem Schließen des Editorfensters sind die Fehler verschwunden. –

0

Ich habe das gleiche Problem. Es war in einer .png Bilddatei. Das Problem ist aufgetreten, nachdem ich die Datei bearbeitet habe. Ich suchte nach der Lösung, aber danach säuberte ich mein Projekt mit der Option "sauber" unter der Registerkarte "Projekt". SO schließlich habe ich davon befreien "

2

ich das gleiche Problem gestoßen sind. Nach dem Debuggen, fand ich, dass es durch die‚&‘Charakter verursacht wurde. Es

+0

Ich hatte das gleiche Problem, ersetzen & für & in meinem xml löste es, danke –

+0

Wenn ich keine Zeichenfolge mit "&" posten ist alles in Ordnung. Mein Problem ist, wie ich den Charakter in Java entkomme, bevor ich die Anfrage sende. – TWeeKeD

Verwandte Themen