2013-12-09 8 views
8

एक ग्राहक ने एक अजीब त्रुटि की सूचना दी है। जब एक AsyncTask में एक सामान्य AndroidHttpClient.execute() ऐप्लिकेशन क्रैश कर रहे हैं और वह निम्नलिखित स्टैक ट्रेसAndroidHttpClient Nullpointerexception कॉलिंग 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 

ऐसा क्यों है checkMMSSendPermission और isSmsRequest बुला रहा है हो जाता है? हम एमएमएस और एसएमएस का उपयोग नहीं कर रहे हैं, और एप्लिकेशन में उन अनुमतियां नहीं हैं, जो मुझे लगता है कि यह क्यों दुर्घटनाग्रस्त हो जाता है। यह हमारे सभी 99.9% उपयोगकर्ताओं के लिए काम करता है।

कोड इस

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(); 
... 

तरह लग रहा है किसी भी मदद स्वागत किया जाएगा

अद्यतन

यह केवल सोनी एक्सपीरिया जेड, जेड 1 और ZR फोन को प्रभावित करने जा रहा है। स्पष्ट रूप से एंड्रॉइड 4.3 में अपडेट प्राप्त करने के बाद समस्याएं उत्पन्न हुईं। उन फ़ोनों में से कोई भी हमारे ऐप का उपयोग नहीं कर सकता है लेकिन अन्य सभी के लिए, यह काम करता है।

+2

'HttpClient क्लाइंट = नया DefaultHttpClient(); ' – Raghunandan

+0

का उपयोग अपनी टिप्पणी के लिए धन्यवाद। क्या यह एमएमएस के साथ समस्या का समाधान करता है? क्या आपने पहले इस मुद्दे को देखा है? – KlasE

+0

मैंने एक सोनी XL39h पर एक ही समस्या में भाग लिया है। और यह 'DefaultHttpClient' में परिवर्तन के बाद काम करता है। क्या आपको 'HttpClient' को बदले बिना इस समस्या का समाधान मिला है? –

उत्तर

2

सुनिश्चित नहीं हैं कि क्यों यह एमएमएस और एसएमएस के तरीकों को कॉल कर रहा है, लेकिन ऐसा करने का प्रयास करें:

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

यह किसी भी दुर्घटनाओं के बिना काम करना चाहिए।

+0

प्रतिसाद देने के लिए धन्यवाद। मैं इसे सत्यापित कर दूंगा। हालांकि, मैंने पहले पुराने एंड्रॉइड संस्करणों के साथ DefaultHttpClient के साथ समस्याओं में भाग लिया है। दुर्भाग्यवश, मुझे याद नहीं है कि वास्तव में ये समस्याएं क्या थीं। मुझे क्या पता है कि सामान्य HttpUrlConnection सभी एंड्रॉइड 4.x संस्करणों के लिए काम कर रहा है। दुर्भाग्य से, 2.x डिवाइसों के साथ समस्याएं होती हैं जब एसएसएल और खाली निकाय के साथ POST करने की बात आती है। AndroidHttpClient केवल एक ही था जिसे मैं सभी एंड्रॉइड संस्करणों के लिए एक ही कोड का उपयोग करके काम कर रहा था। और अब वह विकल्प भी चला गया है, और ऐसा लगता है कि एक्सपीरिया के साथ ही समस्या है, कैसे आते हैं? – KlasE

+0

शायद मुझे ऊपर दिए गए प्रश्न को दोबारा बदलना चाहिए। मैं वास्तव में जानना चाहता हूं कि यह AndroidHttpClient का उपयोग करते समय एमएमएस अनुमति के लिए क्यों जांचता है और यह NullPointerException के साथ क्यों विफल रहता है? – KlasE

+1

मुझे लगता है कि यह एक फर्मवेयर बग – Raiv

संबंधित मुद्दे