2011-10-25 14 views
5

मैं वास्तव में मेरे कोड में कहीं भी एक AndroidHttpClient का दृष्टांत नहीं है, लेकिन मैं एक पहचानकर्ता आशय है, जो कुछ बिंदु पर यह अपवाद पैदावार शुरू करते हैं जब अपने आवेदन रन:रिसाव पाया: AndroidHttpClient बनाया है और कभी नहीं बंद कर दिया

Leak found 
java.lang.IllegalStateException: AndroidHttpClient created and never closed 
    at android.net.http.AndroidHttpClient.<init>(AndroidHttpClient.java:152) 
    at android.net.http.AndroidHttpClient.newInstance(AndroidHttpClient.java:138) 
    at com.google.android.voicesearch.speechservice.SpeechServiceHttpClient.<init>(SpeechServiceHttpClient.java:59) 
    at com.google.android.voicesearch.speechservice.ServerConnectorImpl.<init>(ServerConnectorImpl.java:85) 
    at com.google.android.voicesearch.VoiceSearchContainerImpl.createRecognitionController(VoiceSearchContainerImpl.java:83) 
    at com.google.android.voicesearch.GoogleRecognitionService.onCreate(GoogleRecognitionService.java:65) 
    at android.app.ActivityThread.handleCreateService(ActivityThread.java:2066) 
    at android.app.ActivityThread.access$2500(ActivityThread.java:123) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:130) 
    at android.app.ActivityThread.main(ActivityThread.java:3835) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:507) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
    at dalvik.system.NativeStart.main(Native Method) 

बग मान लिया जाये कि एंड्रॉयड के कोड में नहीं है, लेकिन खान में, इस लीक संसाधन केवल निम्न में से एक में बनाया जा सकता था:

  1. SpeechRecognizer.createSpeechRecognizer()
  2. new RecognitionListener()
  3. new Intent(SpeechRecognizer.RESULTS_RECOGNITION)
  4. SpeechRecognizer.startListening(recognizerIntent)

लेकिन मैं जो एक कैसे पता?

उत्तर

6

बग मान लिया जाये कि एंड्रॉयड के कोड में लेकिन मेरा

रिसाव com.google.android.voicesearch में है, जो अपने कोड नहीं है में नहीं है।

यदि आप एक छोटी नमूना परियोजना बना सकते हैं जो इस रिसाव को प्रदर्शित करती है, तो हम Google को एक समस्या प्राप्त कर सकते हैं और उम्मीद करते हैं कि वे इसे संबोधित करेंगे।

1

आपको लगता है कि यह एंड्रॉइड में क्यों नहीं है? SpeechRecognizer और RecognitionListener ASOP में हैं, इसलिए आप जांच सकते हैं (यह वहां नहीं है)। शायद SpeechServiceHttpClient आंतरिक रूप से AndroidHttpClient का उपयोग करता है। आप ऐसा नहीं कर सकते हैं लेकिन आप जांच कर रहे ढांचे वर्गों के किसी भी (करीबी(), शट डाउन(), आदि), यदि आप सभी फाइनलाइज़र विधियों को कॉल कर रहे हैं, तो जांचें।

+0

धन्यवाद निकोले एलेंकोव और @ कॉमन्सवेयर। – srf