6

私は自分の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;
}
4

6 に答える 6

7

私の場合、この問題は /res/drawable フォルダー内の .png ファイルで発生しました。これはバグであり、ここで報告されました。したがって、将来の参考のために、ドローアブルで直面している場合は、それを確認してください。要約すると、ADT を少なくともバージョン 21.0.1 に更新します。

于 2013-01-04T03:29:41.793 に答える
3

私は同じ問題に遭遇しました。デバッグ後、「&」文字が原因であることがわかりました。エスケープする必要があります

于 2013-12-03T06:29:46.417 に答える
1

よくわかりませんが、output=kml が利用できなくなったため、多くのユーザーが問題を抱えていると思います。

于 2012-12-04T11:17:07.653 に答える
0

私自身も同じ問題に直面していました。この例外が発生するのは、いくつかの重要な KML 要素が最近 Google によって廃止されたためです。たとえば、GeometryCollectionを参照してください。コードが受信したドキュメントでそのような要素を見つけようとすると、 SAXParseException: unterminated entity ref がスローされる可能性があります。

彼らは、マップ用の新しい API を導入しました。こちらから入手できます。

私自身、kml ファイルをダウンロードし、デバイスに保存しました。エディターを使用して調べたところ、コードが探していた要素が見つかりませんでした。ただし、最新の Chrome バージョンで kml ファイルを使用してルートを検索すると機能します。

于 2012-12-21T13:51:15.287 に答える
0

エラー メッセージはかなり示唆に富んでいます:タグが終了していません。refたとえば、タグに囲まれたペアがありません。このようなツールを使用して XML 入力を検証します。<ref></ref>

于 2012-07-30T06:12:36.993 に答える