-2
XMLファイルをUrlから解析し、ファイル内のLat値を取得しようとしていますデバッグ用のトーストウィンドウ。私はこのエラーを取得しています:Android AsyncTaskエラー[Looper.prepare()を呼び出していないスレッド内でハンドラを作成できません]
public void getGpx(String area) {
final String area2 = area;
new GHAsyncTask<Void, Void, List<String>>() {
protected List<String> saveDoInBackground(Void... params)
throws Exception {
String urlString = fileListURL + area2 + ".gpx";
logUser(urlString);
ArrayList testingXml = null;
try {
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(conn.getInputStream());
NodeList nodes = doc.getElementsByTagName("trkpt");
for (int i = 0; i < nodes.getLength(); i++) {
Element element = (Element) nodes.item(i);
NodeList title = element.getElementsByTagName("lat");
Element line = (Element) title.item(0);
testingXml.add(line.getTextContent());
}
} catch (IOException e) {
throw new RuntimeException(e);
} catch (SAXException e) {
} catch (ParserConfigurationException a) {
}
return testingXml;
}
@Override
protected void onPostExecute(List<String> gpxList) {
if (hasError()) {
getError().printStackTrace();
logUser("Are you connected to the internet? Problem while fetching remote area list: "
+ getErrorMessage());
return;
} else if (gpxList == null || gpxList.isEmpty()) {
logUser("something went wrong");
return;
}
logUser(gpxList.toString());
}
}.execute();
}
私は願っています:「スレッド内のハンドラを作成することはできませんLooper.prepareと呼ばれていない()」
これは私が現在使用しているコードです誰かが私にこのエラーを解決させる助けになるでしょう。コードにはまだ私が見つけていない他のエラーがあるかもしれません。これを一枚にしようとするルーキー。
私は上部のlogUser()を見落としました。これはトーストウィンドウを呼び出していました。ありがとう! –