2013-12-09 15 views
8

Bir müşteri garip bir hata bildirdi. bir AsyncTask normal AndroidHttpClient.execute(), uygulama çöker yaparken ve o Neden checkMMSSendPermission ve isSmsRequest çağırıyor aşağıdaki yığın iziniAndroidHttpClient Nullpointerexception arama 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 

alacak? Biz hiç MMS ve SMS kullanmıyoruz ve uygulamanın çökme neden olduğunu tahmin ettiğim bu izinlere sahip değiliz. Bu, tüm diğer kullanıcılarımızın% 99,9'u için çalışır.

Kod Herhangi bir yardım hoş olurdu bu

AndroidHttpClient client = AndroidHttpClient.newInstance(null); 
     InputStream inputStream = null; 
     try 
     { 
      HttpPost request = new HttpPost(urlString); 
      prepareURLRequest(request); 
      HttpResponse response = client.execute(request); 
      mResultStatus = response.getStatusLine().getStatusCode(); 
      inputStream = response.getEntity().getContent(); 
... 

benziyor

Güncelleme Bu yalnızca Sony Xperia Z, Z1 ve ZR telefonlarını etkileyen gibi görünüyor

. Görünüşe göre, Android 4.3 güncellemesini aldıktan sonra sorunlar oluşmaya başladı. Bu telefonlardan hiç kimse bizim uygulamamızı kullanamaz ama her şey için işe yarıyor.

+2

'HttpClient client = new DefaultHttpClient();' – Raghunandan

+0

Yorumunuz için teşekkür ederiz. Bu sorunu MMS ile çözüyor mu? Bu sorunu daha önce gördünüz mü? – KlasE

+0

Bir Sony XL39h'de aynı sorunu yaşadım. Ve 'DefaultHttpClient' olarak değiştirildikten sonra çalışır. Bu sorun için 'HttpClient' değiştirmeden bir çözüm buldunuz mu? –

cevap

2

Değil emin MMS ve SMS yöntemlerine çağrıları yapıyor fakat bunu deneyin neden:

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

Bu, herhangi bir çöker olmadan çalışması gerekir.

+0

Yanıt verdiğiniz için teşekkür ederiz. Bunu doğrulayacağım. Ancak, daha eski Android sürümleri ile daha önce DefaultHttpClient ile ilgili sorunlar yaşadım. Ne yazık ki, bu problemlerin ne olduğunu tam olarak hatırlamıyorum. Bildiğim, normal HttpUrlConnection'ın tüm Android 4.x sürümleri için çalışıyor olmasıdır. Ne yazık ki, SSL ve boş bir gövdeyle birlikte POST yapmak söz konusu olduğunda 2.x cihazlarla ilgili sorunlar var. AndroidHttpClient, tüm android sürümleri için aynı kodu kullanarak çalıştığım tek kişiydi. Ve şimdi bu seçenek de gitti ve sadece Xperia ile ilgili bir problem gibi görünüyor, nasıl oluyor? – KlasE

+0

Belki de yukarıdaki soruları yeniden yazmalıyım. Gerçekten bilmek istediğim, neden AndroidHttpClient kullanırken MMS izni olup olmadığını ve neden bir NullPointerException ile başarısız olduğunu gösteriyor? – KlasE

+1

Sanırım bu bir ürün yazılımı hatası – Raiv