2016-12-20 9 views
-3
private class WeatherTask extends AsyncTask<String , Void, Weather>{ 
    @Override 
    protected Weather doInBackground(String... params) { 
     String data=((new WeatherHttpClient()).getWeatherData(params[0])); 

     weather = JSONWeatherParser.getWeather(data); 

     Log.v("Data:",weather.currentCondition.getDescreption()); 
     return weather; 
    } 

はあなたがいるとき作成中にエラーが発生している間のAndroidアプリケーションは、私は誰かがどのようにこの例外エラーを解決するために私を助けることができるアンドロイド開発に新しいです

FATAL EXCEPTION: AsyncTask #1 
Process: com.example.elangocandy.weatherapp, PID: 2764 
java.lang.RuntimeException: An error occurred while executing doInBackground() 
at android.os.AsyncTask$3.done(AsyncTask.java:309) 
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 
at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 
at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
at java.lang.Thread.run(Thread.java:818) 
Caused by: java.lang.ClassCastException: com.android.okhttp.internal.huc 
+0

クロスあなたは天候オブジェクトを初期化しているモデルクラス – Nithinlal

+0

とあなたの応答を確認しますか?それは問題の可能性があります – shashwatZing

答えて

0

Caused by: java.lang.ClassCastException: com.android.okhttp.internal.huc

にClassCastExceptionがスローされたアプリケーションを実行中に発生しました実際に入っていない型にオブジェクトをキャストしようとしています。私はWeatherHttpClientがあなたによって書かれたクラスだと思います。したがって、このクラスの中でクラスキャストを行っている場合は、キャストする前にinstance ofのチェックを行う必要があります。

WeatherHttpClientクラスの本文を投稿できる場合は、さらに詳しい情報を提供できます。

ネットワーク通話には、volleyライブラリを使用していますか?

+0

WeatherHttpClientの本文を投稿しました – elango

+0

明らかに、 'WeatherHttpClient'クラスはOKです。私はあなたの問題が非常にはっきりしていないので、それ以上のコメントをすることはできません。これは、 'JSONWeatherParser'クラスの問題か天気オブジェクトの問題かもしれません。あなたがしなければならないのは、アプリケーションをデバッグし、エラーの行を見つけることです。あるいは、デバッグに慣れていない人は、 'String data =((新しいWeatherHttpClient())。getWeatherData(params [0]));'行だけを残し、 'doInBackground'メソッドから他の行をすべて削除してチェックしてください。これを続行するには、他の行を1つずつ追加します。 –

0
public class WeatherHttpClient { 
public String getWeatherData(String place){ 
    HttpsURLConnection connection=null; 
    InputStream inputStream=null; 

    try { 
     connection = (HttpsURLConnection)(new URL(Utils.BASE_URL + place)).openConnection(); 
     connection.setRequestMethod("GET"); 
     connection.setDoInput(true); 
     connection.setDoOutput(true); 
     connection.connect(); 

     //Read the Response 
     StringBuffer stringBuffer=new StringBuffer(); 
     inputStream=connection.getInputStream(); 
     BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream)); 
     String line=null; 

     while ((line=bufferedReader.readLine()) != null){ 
      stringBuffer.append(line + "\r\n"); 
     } 
     inputStream.close(); 
     connection.disconnect(); 

     return stringBuffer.toString(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
     return null; 
} 

}

関連する問題