2016-12-16 1 views
-1

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

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

+0

ja, der Stacktrace sollte Ihnen die Zeile # sagen, an der es auftritt. – TWL

Antwort

1

lesen Sie den Fehler, werden Sie?

Verursacht durch: java.lang.SecurityException: Zugriff verweigert (? Fehlt INTERNET Erlaubnis) bei

1

sein können Sie die Erlaubnis nicht schreiben für den Zugriff auf Internet in Manifest-Datei

Verursacht durch: java .lang.SecurityException: Berechtigung verweigert (fehlende INTERNET-Berechtigung?)

+0

Danke. Ich habe die Berechtigung zum Zugriff auf das Internet in der Manifest-Datei nicht geschrieben. Ich war ratlos. Ich werde diese Antwort nicht vergessen. Vielen Dank. –

Verwandte Themen