2011-10-25 11 views
5

Realmente no una instancia de un AndroidHttpClient en cualquier lugar en mi código, pero sí iniciar un intento reconocedor, que produce esta excepción en algún momento cuando mis ejecuta la aplicación:fugas encontradas: AndroidHttpClient creado y nunca cerrado

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) 

Suponiendo que el error no está en el código de Android, pero en la mía, este recurso se filtró pudo haber sido creado sólo en uno de los siguientes:

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

Pero, ¿cómo puedo saber cuál?

Respuesta

6

Suponiendo que el error no está en el código de Android, pero en la mía

La fuga está en com.google.android.voicesearch, que no es su código.

Si puede crear un pequeño proyecto de muestra que demuestre esta filtración, podemos enviar un problema a Google y esperar que lo aborden.

1

¿Por qué asumes que no está en Android? SpeechRecognizer y RecognitionListener están en ASOP, por lo que puede verificar (no está allí). Lo más probable es SpeechServiceHttpClient utiliza un AndroidHttpClient internamente. No hay mucho que pueda hacer, pero compruebe que está llamando a todos los métodos de finalizador, en su caso (close(), shutdown(), etc.) de las clases de framework que está utilizando.

+0

Gracias Nikolay Elenkov y @CommonsWare. – srf

Cuestiones relacionadas