Ich versuche, eine einfache Wetter App zu machen. Jedesmal, wenn ich versuche, auf die Yahoo-Wetter-API zuzugreifen, um ein JSON-Objekt zurückzugeben, erhalte ich diese Ausnahme. Um die Aufgabe ohne die API auszuführen, kopiere ich das JSON-Objekt in eine separate Zeichenfolge und arbeite mit dieser Zeichenfolge als JSON-Objekt.Android FATAL EXCEPTION Asynch Aufgabe # 1
Das ist mein asynch Aufgabe ist:
public class WeatherInfoThread AsyncTask erstreckt {
@Override
protected String doInBackground(Void... params) {
String resultString = null;
try {
url = new URL("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22"+location+"%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys");
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
connection = url.openConnection();
} catch (IOException e) {
e.printStackTrace();
}
try {
inputStream = connection.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
try {
jsonInfo = bufferedReader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
resultString = jsonInfo;
try {
weatherinfo = new JSONObject(testString);
// Log.d(JSON_INFO,weatherinfo.toString()+"df");
JSONObject channel = weatherinfo.getJSONObject("query").getJSONObject("results").getJSONObject("channel");
JSONObject item = channel.getJSONObject("item");
currentTemp = item.getJSONObject("condition");
cCurrentInt = currentTemp.getInt("code");
forecast = item.getJSONArray("forecast");
cOne = forecast.getJSONObject(1).getString("text");
cTwo = forecast.getJSONObject(2).getString("text");
cThree = forecast.getJSONObject(3).getString("text");
cFour = forecast.getJSONObject(4).getString("text");
cFive = forecast.getJSONObject(5).getString("text");
dOne = forecast.getJSONObject(1).getString("day");
dTwo = forecast.getJSONObject(2).getString("day");
dThree = forecast.getJSONObject(3).getString("day");
dFour = forecast.getJSONObject(4).getString("day");
dFive = forecast.getJSONObject(5).getString("day");
// Log.d(JSON_INFO,forecast.get(1).toString()+"ddf");
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
Dies ist der Fehler, den ich habe:
12-16 16: 48: 06.677 10.523 bis 10.549/com.example.aakashmahesh.weatherapp E/AndroidRuntime: FATALE AUSNAHME: AsyncTask # 1 java.lang.RuntimeException: Beim Ausführen von doInBackground() bei android.os.Asyn ist ein Fehler aufgetreten cTask $ 3..done (AsyncTask.java:299) bei java.util.concurrent.FutureTask $ Sync.innerSetException (FutureTask.java:273) bei java.util.concurrent.FutureTask.setException (FutureTask.java:124) bei java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java307) bei java.util.concurrent.FutureTask.run (FutureTask.java:137) bei android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:230) bei java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1076) bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:569) bei java.lang. Thread.run (Th read.java:856) Verursacht von: java.lang.SecurityException: Berechtigung verweigert (fehlende INTERNET-Berechtigung?) bei java.net.InetAddress.lookupHostByName (InetAddress.java:418) bei java.net.InetAddress.getAllByNameImpl (InetAddress.java:236) bei java.net.InetAddress.getAllByName (InetAddress.java:214) bei libcore.net.http.HttpConnection. (HttpConnection.java:70) bei libcore.net.http.HttpConnection. (HttpConnection.java:50) bei libcore.net.http.HttpConnection $ Address.connect (HttpConnection.java:340) bei libcore.net.http.HttpConnectionPool.get (HttpConnectionPool.java: 87) bei libcore.net.http.HttpConnection.connect (HttpConnection.java:128) bei libcore.net.http.HttpEngine.openSocketConnection (HttpEngine.java:315) bei libcore.net.http.HttpsURLConnectionImpl $ HttpsEngine.makeSslConnection (HttpsURLConnectionImpl.java:461) bei libcore.net.http.HttpsURLConnectionImpl $ HttpsEngine.connect (HttpsURLConnectionImpl.java:433) bei libcore.net.http.HttpEngine.sendSocketRequest (HttpEngine.java:289) bei libcore.net. http.HttpEngine.sendRequest (HttpEngine.java:239) bei libcore.net.http.HttpURLConnectionImpl.getResponse (HttpURLConnectionImpl.java:273) bei libcore.net.htt p.HttpURLConnectionImpl.getInputStream (HttpURLConnectionImpl.java:168) bei libcore.net.http.HttpsURLConnectionImpl.getInputStream (HttpsURLConnectionImpl.java:271) bei com.example.aakashmahesh.weatherapp.MainActivity $ WeatherInfoThread.doInBackground (MainActivity.java: 269) bei com.example.aakashmahesh.weatherapp.MainActivity $ WeatherInfoThread.doInBackground (MainActivity.java: 250) bei android.os.AsyncTask $ 2.call (AsyncTask.java:287) bei java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java305) bei java.util.concurrent.FutureTask .run (FutureTask.java:137) bei android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:230) bei java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1076) bei java. util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:569) bei java.lang.Thread.run (Thread.java:856) verursacht durch: libcore.io.GaiException: getaddrinfo fehlgeschlagen: EAI_NODATA (keine Adresse zugeordnet mit h ostname) bei libcore.io.Posix.getaddrinfo (native Methode) bei libcore.io.ForwardingOs.getaddrinfo (ForwardingOs.java:55) bei java.net.InetAddress.lookupHostByName (InetAddress.java:405) bei Java .net.InetAddress.getAllByNameImpl (InetAddress.java:236) bei java.net.InetAddress.getAllByName (InetAddress.java:214) bei libcore.net.http.HttpConnection. (HttpConnection.java:70) bei libcore. net.http.HttpConnection. (HttpConnection.java:50) bei libcore.net.http.HttpConnection $ Address.connect (HttpConnection.java:340) in lib core.net.http.HttpConnectionPool.get (HttpConnectionPool.java:87) bei libcore.net.http.HttpConnection.connect (HttpConnection.java:128) bei libcore.net.http.HttpEngine.openSocketConnection (HttpEngine.java: 315) bei libcore.net.http.HttpsURLConnectionImpl $ HttpsEngine.makeSslConnection (HttpsURLConnectionImpl.java:461) bei libcore.net.http.HttpsURLConnectionImpl $ HttpsEngine.connect (HttpsURLConnectionImpl.java:433) bei libcore.net.http. HttpEngine.sendSocketRequest (HttpEngine.java:289) bei libcore.net.http.HttpEngine.sendRequest (HttpEngine.java:239) bei libcore.net.http.HttpURLConnectionImpl.getResponse (HttpURLConne ctionImpl.java:273) bei libcore.net.http.HttpURLConnectionImpl.getInputStream (HttpURLConnectionImpl.java:168) bei libcore.net.http.HttpsURLConnectionImpl.getInputStream (HttpsURLConnectionImpl.java:271) bei com.example.aakashmahesh. weatherapp.MainActivity $ WeatherInfoThread.doInBackground (MainActivity.java:269) bei com.example.aakashmahesh.weatherapp.MainActivity $ WeatherInfoThread.doInBackground (MainActivity.java:250) bei android.os.AsyncTask $ 2.call (AsyncTask.java : 287) bei java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java305) bei java.util.concurrent.FutureTask.run (FutureTask.java:137) bei android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:230) bei java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1076) bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:569) bei java.lang.Thread.run (Thread.java:856) verursacht durch: libcore.io.ErrnoException: getaddrinfo fehlgeschlagen: EACCES (Berechtigung verweigert) bei libcore.io.Posix.getaddrinfo (Native Methode) bei libcore.io.ForwardingOs.getaddrinfo (ForwardingOs.java:55) bei java.net.InetAddress.lookupHostByName (InetAddress.java:405) bei java.net.InetAddress.getAllByNameImpl (InetAddress.java:236) bei java.net.InetAddress.getAllByName (InetAddress.java:214) bei libcore.net.http.HttpConnection. (HttpConnection.java:70) bei libcore.net.http .HttpConnection. (HttpConnection.java:50) bei libcore.net.http.HttpConnection $ Address.connect (HttpConnection.java:340) bei libcore.net.http.HttpConnectionPool.get (HttpConnectionPool.java:87) bei libcore.net.http.HttpConnection.connect (HttpConnection.java:128) bei libcore.net.http.HttpEngine.openSocketConnection (HttpEngine.java:315) bei libcore.net.http.HttpsURLConnec tionImpl $ HttpsEngine.makeSslConnection (HttpsURLConnectionImpl.java:461) bei libcore.net.http.HttpsURLConnectionImpl $ HttpsEngine.connect (HttpsURLConnectionImpl.java:433) bei libcore.net.http.HttpEngine.sendSocketRequest (HttpEngine.java:289) bei libcore.net.http.HttpEngine.sendRequest (HttpEngine.java:239) bei libcore.net.http.HttpURLConnectionImpl.getResponse (HttpURLConnectionImpl.java:273) bei libcore.net.http.HttpURLConnectionImpl.getInputStream (HttpURLConnectionImpl. java: 168) bei libcore.net.http.HttpsURLConnectionImpl.getInputStream (HttpsURLConnectionImpl.java:271) bei com.example.aakashmahesh.weatherapp.M ainActivity $ WeatherInfoThread.doInBackground (MainActivity.java:269) bei com.beispiel.aakashmahesh.weatherapp.MainActivity $ WeatherInfoThread.doInBackground (MainActivity.java:250) bei android.os.AsyncTask $ 2.call (AsyncTask.java:287) bei java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java305) bei java.util.concurrent.FutureTask.run (FutureTask.java:137) bei android.os.AsyncTask $ SerialExecutor $ 1. Führen Sie (AsyncTask.java:230) unter java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1076) bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:569) bei java.lang.Thread.run (Thread.java:856) 12-16 16: 48: 06.677 1370-17136/system_process Mit ActivityManager: Abschlussaktivität erzwingen com.example.aakashmahesh.weatherapp/.MainActivity 12- 16 16: 48: 06.737 1370-17136/system_process D/dalvikvm: GC_FOR_ALLOC befreit 647K, 12% frei 16559K/18695K, pausiert 10ms, insgesamt 10ms 12-16 16: 48: 06.767 10523-10523/com.beispiel.aakashmahesh. weatherapp D/libEGL: geladen /system/lib/egl/libEGL_emulation.so 12-16 16: 48: 06.767 10523-10523/com.beispiel.aakashmahesh.weatherapp D/libEGL: geladen/system/lib/egl/libGLESv1_CM_emulation. so 12-16 16: 48: 06.767 10.523 bis 10.523/com.example.aakashmahesh.weatherapp D/libEGL: geladene /system/lib/egl/libGLESv2_emulation.so
[ 12-16 16:48:06.767 10523:10523 D/ ]
HostConnection::get() New Host Connection established 0xb8071030, tid 10523
Sicher gibt es mehr Protokoll. Die Ausnahme, die Sie veröffentlichen, fehlt die Zeile, in der die Ausnahme auftritt.Bitte posten Sie das vollständige zugehörige Protokoll – zon7
ja, der Stacktrace sollte Ihnen die Zeile # sagen, an der es auftritt. – TWL