2016-08-04 18 views
0

Ich benutze okHttp.
Meine URL ist in Ordnung.
Aber wenn ich diese App auf einem Emulator oder einem echten Gerät ausführen, zeigt es nie einen Fehler. Aber es protokolliert nicht die Wetterdaten.Ich kann die Wetterdaten im Log nicht sehen

Mainactivity.java

package com.buckydroid.droidweather; 

import android.app.DownloadManager; 
import android.os.AsyncTask; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.TextView; 

import java.io.IOException; 

import okhttp3.OkHttpClient; 
import okhttp3.Request; 
import okhttp3.Response; 

public class MainActivity extends AppCompatActivity { 
    public static String responsedata; 
    private static final String TAG = "MainActivity"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     TextView text = (TextView)findViewById(R.id.text) ; 

     new AsyncTask<Void, Void, String>() { 
      @Override 
      protected String doInBackground(Void... params) { 
       OkHttpClient client = new OkHttpClient(); 
       Request request = new Request.Builder().url("https://api.forecast.io/forecast/11f696255d54c7cea3d097a6338bbaed/37.8267,-122.423").build(); 
       try { 

        Response response = client.newCall(request).execute(); 

        responsedata = response.body().toString(); 
        Log.d(TAG,responsedata); 
        return responsedata; 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       return responsedata; 
      } 
     }.execute(); 



    } 
} 

LOG

08-04 17:27:31.847 18694-18694/com.buckydroid.droidweather I/art: Not late-enabling -Xcheck:jni (already on) 
08-04 17:27:31.936 18694-18694/com.buckydroid.droidweather W/System: ClassLoader referenced unknown path: /data/app/com.buckydroid.droidweather-2/lib/x86 
08-04 17:27:52.479 18694-18694/com.buckydroid.droidweather W/System: ClassLoader referenced unknown path: /data/app/com.buckydroid.droidweather-2/lib/x86 
08-04 17:27:52.562 18694-18694/com.buckydroid.droidweather W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable 
08-04 17:27:52.603 18694-19012/com.buckydroid.droidweather D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true 

                      [ 08-04 17:27:52.613 18694:18694 D/   ] 
                      HostConnection::get() New Host Connection established 0xaa99da20, tid 18694 


                      [ 08-04 17:27:52.668 18694:19012 D/   ] 
                      HostConnection::get() New Host Connection established 0xae407270, tid 19012 
08-04 17:27:52.671 18694-19012/com.buckydroid.droidweather I/OpenGLRenderer: Initialized EGL, version 1.4 
08-04 17:27:54.061 18694-18694/com.buckydroid.droidweather W/art: Verification of boolean android.support.v7.widget.ActionMenuPresenter.isOverflowReserved() took 180.240ms 
08-04 17:27:56.127 18694-19011/com.buckydroid.droidweather D/MainActivity: [email protected] 

Und ich hinzugefügt, um die Internet-Erlaubnis. Also kein Problem, dass

+0

Konfigurieren Sie die Protokollierung auf Ihrem 'OkHttpClient' und sehen Sie, was genau passiert, wenn Sie die Anfrage stellen. – Egor

+0

Sie müssen die Aufgabe ausführen, die Sie erstellt haben https://developer.android.com/reference/android/os/AsyncTask.html#execute (Params ...) – Serg

+0

ich lief es wieder es zeigt getslotfrompuffer gesperrt –

Antwort

0

Dieses Fragment:

  Log.d(TAG,responsedata); 
      responsedata = response.body().string(); 

Es sollte in umgekehrter Reihenfolge.
Und nächstes, müssen Sie String von doInBackground zurückzukehren nach AsyncTask<Void, Void, String>
Und noch eine gängige Praxis ist AsyncTask zu erweitern und diese Ihre eigene Klasse.

+0

Es zeigt keine Wetterdaten, aber gute Nachrichten zeigt keinen Fehler Nur ein Protokoll D/MainActivity: [email protected] –

+0

aktualisiert die question –

+0

Ich ersetzte nur toString mit String und Wetterdaten ist in der log –