2013-12-09 18 views
8

お客様から奇妙なエラーが報告されました。 はAsyncTaskの通常AndroidHttpClient.execute()、アプリのクラッシュをやったとき、彼はなぜそれがcheckMMSSendPermissionとisSmsRequestを呼び出して次のスタックトレースAndroidHttpClientヌルポイント受信の呼び出しandroid.net.http.AndroidHttpClient.isMmsRequest

java.lang.RuntimeException: An error occured while executing doInBackground() 
at android.os.AsyncTask$3.done(AsyncTask.java:299) 
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352) 
at java.util.concurrent.FutureTask.setException(FutureTask.java:219) 
at java.util.concurrent.FutureTask.run(FutureTask.java:239) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
at java.lang.Thread.run(Thread.java:841) 
Caused by: java.lang.NullPointerException 
at android.net.http.AndroidHttpClient.isMmsRequest(AndroidHttpClient.java:257) 
at android.net.http.AndroidHttpClient.checkMmsSendPermission(AndroidHttpClient.java:290) 
at android.net.http.AndroidHttpClient.execute(AndroidHttpClient.java:296) 
at com.xxx.xxx.MyClass$MyHandler.doWork(MyClass.java:325) 
at com.xxx.xxx.NetworkRequestHandler$AsyncTaskForRequestHandler.doInBackground(NetworkRequestHandler.java:532) 
at com.xxx.xxx.utils.network.NetworkRequestHandler$AsyncTaskForRequestHandler.doInBackground(NetworkRequestHandler.java:1) 
at android.os.AsyncTask$2.call(AsyncTask.java:287) 
at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
... 3 more 

を取得しますか?私たちはMMSとSMSをまったく使用していません。アプリケーションにはこれらのアクセス許可がありません。私はそれがクラッシュする理由を推測しています。 これは他のすべてのユーザーの99.9%で動作します。

コードは、この

​​

のように見えるすべてのヘルプは

歓迎されるであろう更新

これはソニーのXperia Z、Z1及びZR電話に影響を与えているようです。明らかに、Android 4.3へのアップデートを受け取った後に問題が発生し始めた。 私たちのアプリを使用できる携帯電話はありませんが、それ以外の場合は機能します。

+2

「HttpClient client = new DefaultHttpClient();」を使用してください。 – Raghunandan

+0

ご意見ありがとうございます。それはMMSの問題を解決しますか?これまでにこの問題を見たことがありますか? – KlasE

+0

私は同じ問題を1つのSony XL39hで実行しました。そして、それは 'DefaultHttpClient'への変更後に動作します。あなたは 'HttpClient'を変更せずにこの問題の解決策を見つけましたか? –

答えて

2

なぜそれがMMSやSMSのメソッドへの呼び出しを行うが、これをやってみますわからない:

DefaultHttpClient client = new DefaultHttpClient(); 
HttpPost httpPost = new HttpPost(url); 
try { 
    HttpResponse execute = client.execute(httpPost); 
    InputStream content = execute.getEntity().getContent(); 

これは、任意のクラッシュせずに動作するはずです。

+0

応答いただきありがとうございます。私はそれを確認します。しかし、古いAndroidバージョンでは以前はDefaultHttpClientに問題がありました。残念ながら、私はこれらの問題が何かを正確に覚えていません。私が知っていることは、通常のHttpUrlConnectionはすべてのAndroid 4.xバージョンで動作していることです。残念ながら、2.xデバイスには、SSLと空のボディとともにPOSTを実行する際に問題があります。 AndroidHttpClientは、すべてのアンドロイド版で同じコードを使用して作業している唯一のものでした。そして今、そのオプションもなくなり、Xperiaの問題にしか見えないようです。どうですか? – KlasE

+0

おそらく私は上記の質問を言い換えるべきです。私が本当に知りたいのは、AndroidHttpClientを使用しているときにMMSアクセス許可をチェックする理由とNullPointerExceptionで失敗する理由です。 – KlasE

+1

これはファームウェアのバグだと思います – Raiv