2011-10-25 22 views
5

tôi không thực sự nhanh chóng một AndroidHttpClient bất cứ nơi nào trong mã của tôi, nhưng tôi bắt đầu một ý định nhận dạng, trong đó sản lượng ngoại lệ này tại một số điểm khi ứng dụng chạy của tôi:rò rỉ được tìm thấy: AndroidHttpClient tạo và không bao giờ đóng

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) 

Giả sử các lỗi không có trong mã Android nhưng trong tôi, nguồn bị rò rỉ này có thể đã được tạo ra chỉ trong một trong các cách sau:

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

Nhưng làm thế nào để tôi biết cái nào?

Trả lời

6

Giả sử các lỗi không có trong mã Android nhưng trong tôi

Vụ rò rỉ là trong com.google.android.voicesearch, mà không phải là mã của bạn.

Nếu bạn có thể tạo một dự án mẫu nhỏ thể hiện sự rò rỉ này, chúng tôi có thể gặp vấn đề với Google và hy vọng họ sẽ giải quyết vấn đề đó.

1

Tại sao bạn cho rằng nó không có trong Android? SpeechRecognizerRecognitionListener nằm trong ASOP, vì vậy bạn có thể kiểm tra (không có ở đó). Hầu hết có thể là SpeechServiceHttpClient sử dụng một số AndroidHttpClient nội bộ. Không có nhiều bạn có thể làm nhưng kiểm tra bạn đang gọi tất cả các phương thức finalizer, nếu có (close(), shutdown(), vv), của các lớp framework bạn đang sử dụng.

+0

Cảm ơn Nikolay Elenkov và @CommonsWare. – srf

Các vấn đề liên quan