【问题标题】:"Explicit termination method 'close' not called" what's means?“未调用显式终止方法'close'”是什么意思?
【发布时间】:2014-03-04 04:56:09
【问题描述】:

03-02 04:23:07.015:E/StrictMode(1096):在附加的堆栈跟踪中获取了资源,但从未释放。有关避免资源泄漏的信息,请参阅 java.io.Closeable。 03-02 04:23:07.015: E/StrictMode(1096): java.lang.Throwable: 未调用显式终止方法“关闭” 03-02 04:23:07.015: E/StrictMode(1096): 在 dalvik.system.CloseGuard.open(CloseGuard.java:184) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:805) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:944) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188) 03-02 04:23:07.015: E/StrictMode(1096): at com.helper.database.DBOperator.queryfeeds(DBOperator.java:53) 03-02 04:23:07.015: E/StrictMode(1096): at com.example.rssreader.MainActivitySpace.getfeeddata(MainActivitySpace.java:85) 03-02 04:23:07.015: E/StrictMode(1096): at com.example.rssreader.MainActivitySpace.onActivityCreated(MainActivitySpace.java:74) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1508) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:570) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.app.Activity.performStart(Activity.java:5253) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2149) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.app.ActivityThread.access$700(ActivityThread.java:135) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.os.Handler.dispatchMessage(Handler.java:102) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.os.Looper.loop(Looper.java:137) 03-02 04:23:07.015: E/StrictMode(1096): 在 android.app.ActivityThread.main(ActivityThread.java:4998) 03-02 04:23:07.015: E/StrictMode(1096): 在 java.lang.reflect.Method.invokeNative(Native Method) 03-02 04:23:07.015: E/StrictMode(1096): 在 java.lang.reflect.Method.invoke(Method.java:515) 03-02 04:23:07.015: E/StrictMode(1096): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 03-02 04:23:07.015: E/StrictMode(1096): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 03-02 04:23:07.015: E/StrictMode(1096): at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 这个问题我找了很多地方: 1.cursor没有关闭 2数据库操作“内容”没有任何价值 另外,我怀疑是不是这样?我的版本Android配置高造成的,但我不确定。困扰我多日的问题

标签: android android-sqlite sqliteopenhelper


【解决方案1】:

您需要在游标超出范围之前显式调用关闭。如果你不这样做,游标的内容和分配的资源将不会被释放,直到垃圾收集器决定实际删除它。 由于游标需要大量资源,因此最好在不再使用时立即关闭它。

【讨论】:

  • 有没有办法一般调试这些问题?有什么有用的工具吗?
  • 据我所知,StrictMode 是您需要的调试工具。
  • 您好,这是我的应用程序中经常出现的错误:我需要做什么? 05-24 16:58:31.582 9405-9414/com.android.mms E/StrictMode: 在附加的堆栈跟踪中获取了资源,但从未释放。有关避免资源泄漏的信息,请参阅 java.io.Closeable。 java.lang.Throwable:com.google 的 android.drm.DrmManagerClient.(DrmManagerClient.java:258) 的 dalvik.system.CloseGuard.open(CloseGuard.java:184) 未调用显式终止方法“释放” .android.mms.pdu.PduPersister.(PduPersister.java:288)
  • @AntonSack 你真的应该打开另一个问题,并提供一些关于你在做什么和你得到什么的更多信息
猜你喜欢
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
  • 2016-10-27
  • 1970-01-01
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
  • 2013-03-29
相关资源
最近更新 更多