2016-07-28 9 views
-1

私のコードはAndroidの上位バージョンで完全に動作しています。しかし、私がJelly Bean 4.2.2でプログラムを動かそうとしているときはいつも、それは動作しません。マイ最小SDKのバージョンがある:14とターゲットSDKのバージョンがある:22onPostExecuteはAndroid 4.2.2でnullの結果を得ています

私のコードは次のとおりです。

private class AuthAsync extends AsyncTask<String, Integer, String> { 

    @Override 
    protected void onPreExecute() { 
    } 

    @Override 
    protected String doInBackground(String... params) { 

     HttpGet request = new HttpGet(params[0] + params[1]); 
     ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
     String responseTxt = null; 
     HttpClient client = PaywellServices.getTrustedHttpClient(); 
     try { 
      responseTxt = client.execute(request, responseHandler); 
     } catch (ClientProtocolException ex) { 
      ex.printStackTrace(); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
     return responseTxt; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 

     try { 
      Log.e("Log","Try"); 
      Log.e("Result",result); 
      if (result != null && result.contains("@")) { 
       String splitedArray[] = result.split("@@@"); 
      } 
     } catch (ArrayIndexOutOfBoundsException e) { 
      Log.e("Log","Catch"); 
      e.printStackTrace(); 
     } 
    } 
} 
+0

デバイス4.2.2でテストするとインターネットが開きましたか? –

+0

yap :)どうすればそれを忘れることができます – Ipshita

答えて

0

私の問題は、私の携帯電話は、Googleが認証エラーを取得しているれました:
私の手がかりがでメソッドを呼び出すときPayWellクライアントの結果がnullを返しているということです。その理由から私は期待された反応を得ることができませんでした。 Google認証の問題を解決した後、私のコードは完全に機能していました。

0

は技術的には、あなたがdoInBackgroundから返さ結果がonPostExecuteに渡されます。
だからonPostExecute()doInBackground()で返される文字列と同じであるに結果入力パラメータ responseTxt

一見、特にこのコードブロックのIM思考として:

try { 
    responseTxt = client.execute(request, responseHandler); 
} catch (ClientProtocolException ex) { 
    ex.printStackTrace(); 
} catch (IOException ex) { 
    ex.printStackTrace(); 
} 
return responseTxt; 

デバッグ用として、値をチェックしてみてください(またはコンソールにそれを印刷)それを返す前responseTxtの。

responseTxt = client.execute(request, responseHandler); 
+0

私は両方のデバイスでこのソリューションを試しました。 Kitkatのバージョンで私のデバイスの1つを接続している間、応答は希望通りでした。私がJelly Beanに接続すると、Nullポイント例外が発生します。私はなぜこれを得ているのか分からない。一週間前に、それはゼリービーンで完璧に働いていました。 – Ipshita

+0

これは関連する事実です。 PaywellServices.getTrustedHttpClient()。execute()でインスタンス化しているPaywellクライアントがNullオブジェクトを返すかどうかを確認してください。 Paywellライブラリ/依存関係が最近変更され、Jelly Beanサポートが壊れている可能性があります。 これは私が見ることができる最も明確な説明です(レビューのためのスタックトレースまたは完全なコードはありません)。 文字列の値を確認したり、デバッグモードでアプリケーションを実行して確認してください。 何が起こったかを知ってうれしくて助けてください –

+0

私は昨日私のSDKを更新しました。まだ同じ問題が発生しています。別のPCで開発された別のアプリでも同じ問題が発生しています。 – Ipshita

関連する問題