首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发现泄漏: AndroidHttpClient创建并从未关闭

发现泄漏: AndroidHttpClient创建并从未关闭
EN

Stack Overflow用户
提问于 2011-10-25 14:42:35
回答 2查看 4.8K关注 0票数 5

我并没有在代码中的任何地方实例化AndroidHttpClient,但是我确实启动了一个识别器意图,在应用程序运行时产生这个异常:

代码语言:javascript
复制
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)

假设错误不在Android的代码中,而是在我的代码中,这个泄漏的资源只能在以下几个中创建:

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

但我怎么知道是哪一个?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-25 14:49:50

假设bug不是在Android的代码中,而是在我的代码中

泄漏在com.google.android.voicesearch中,这不是您的代码。

如果您可以创建一个演示此漏洞的小示例项目,我们可以将问题转移到Google,并希望他们能够解决这个问题。

票数 6
EN

Stack Overflow用户

发布于 2011-10-25 14:54:22

为什么你认为它不是安卓的呢?SpeechRecognizerRecognitionListener都在ASOP中,所以你可以检查(它不在那里)。很可能SpeechServiceHttpClient在内部使用AndroidHttpClient。除了检查是否调用正在使用的框架类的所有终结器方法(close()、check ()等)之外,您无能为力。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7891047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档