大家好iam新的Android和使用綠色DAO管理數據庫,但IAM經常得到一個數據庫未關閉的異常,因爲IAM在應用程序onTeriminate(),IAM維護只有單一連接的數據庫通過了應用程序,但在某些情況下我的應用程序切換到後臺並恢復數據庫連接對象變得無效,我通過使用之前檢查對象的零內斯處理的問題,但現在經常IAM得到異常如何使用綠色DAO知道數據庫的所有打開連接?
android.database.sqlite.DatabaseObjectNotClosedException:應用沒有關閉這裏打開的遊標或數據庫對象
請幫助我如何提前處理這個
感謝
堆棧跟蹤: 九月1日至3日:39:18.688:E/SQLiteDatabase(3063):關閉()從未被明確要求數據庫'/data/data/com.opera.mini.android/databases/google_analytics.db' 01-03 09:39:18.688:E/SQLiteDatabase(3063):android.database.sqlite.DatabaseObjectNotClosedException:應用程序未關閉在這裏打開的遊標或數據庫對象 01-03 09:39:18.688:E/SQLiteDatabase(3063):at android.database.sqlite.SQLiteDatabase。(SQLiteDatabase.java:1943) 01-03 09:3 9:18.688:E/SQLiteDatabase(3063):在android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1007) 01-03 09:39:18.688:E/SQLiteDatabase(3063):在android.database。 sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:986) 01-03 09:39:18.688:E/SQLiteDatabase(3063):在android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1051) 01-03 E/SQLiteDatabase(3063):at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:787) 01-03 09:39:18.688:E/SQLiteDatabase(3063):at android.content。 ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221) 01-03 09:39:18.688:E/SQLiteDatabase(3063):at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221) 01-03 09:39: 18.688:E/SQLiteDatabase(3063):在android.database.sql ite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157) 9月一日至3日:39:18.688:E/SQLiteDatabase(3063):在com.google.android.apps.analytics.PersistentHitStore.loadExistingSession(未知來源) 01- 03 09:39:18.688:E/SQLiteDatabase(3063):at com.google.android.apps.analytics.PersistentHitStore。(Unknown Source) 01-03 09:39:18.688:E/SQLiteDatabase(3063):at com .google.android.apps.analytics.PersistentHitStore。(Unknown Source) 01-03 09:39:18.688:E/SQLiteDatabase(3063):at com.google.android.apps.analytics.AnalyticsReceiver.onReceive(Unknown Source) E/SQLiteDatabase(3063):com.opera.mini.android.OpMiniInstallReferrerReceiver.onReceive(Source:15) 01-03 09:39:18.688:01/:在android.app.ActivityThread.handleReceiver(ActivityThread.java:2119) 01-03 09:39:18.688:E/SQLiteDatabase(3063):at android.app.ActivityThread.access $ 1500(ActivityThread.java:123) 01-03 09:39:18.688:E/SQLiteDatabase(3063)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1197) 01-03 09:39:18.688:E/SQLiteDatabase(3063):在android.os.Handler.dispatchMessage(Handler.java:99) 01-03 09:39:18.688:E/SQLiteDatabase(3063):at android.os.Looper.loop(Looper.java:137) 01-03 09:39:18.688:E/SQLiteDatabase(3063):at android .app.ActivityThread.main(ActivityThread.java:4424) 9月1日至3日:39:18.688:E/SQLiteDatabase(3063):在java.lang.reflect.Method.invokeNative(本機方法) 9月1日至3日: 39:18.688:E/SQLiteDatabase(3063):在java.lang。方法.invoke(Method.java:511) 01-03 09:39:18.688:E/SQLiteDatabase(3063):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784) 01-03 09:39:18.688:E/SQLiteDatabase(3063):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 01-03 09:39:18.688:E/SQLiteDatabase 3063):at dalvik.system.NativeStart.main(Native Method) 01-03 09:39:18.688:E/System(3063):終結器引發的未捕獲異常 01-03 09:39:18.688:E/System (3063):java.lang.IllegalStateException:沒有數據庫鎖! (3063):at android.database.sqlite.SQLiteDatabase.verifyLockOwner(SQLiteDatabase.java:2090) 01-03 09:39:18.688:E/System(3063) :at android.database.sqlite.SQLiteDatabase $ 1.entryRemoved(SQLiteDatabase.java:2182) 01-03 09:39:18.688:E/System(3063):at android.database.sqlite.SQLiteDatabase $ 1.entryRemoved(SQLiteDatabase。 java:2178) 01-03 09:39:18.688:E/System(3063):at android.util.LruCache.trimToSize(LruCache.java:197) 01-03 09:39:18.688:E/System 3063):at android.util.LruCache.evictAll(LruCache.java:285) 01-03 09:39:18.688:E/System(3063):at android.database.sqlite.SQLiteDatabase.deallocCachedSqlStatements(SQLiteDatabase.java: 2143) 01-03 09:39:18.688:E/System(3063):at android.database.sqlite.SQLiteDatabase.closeClosable(SQLiteDa tabase.java:1126) 01-03 09:39:18.688:E/System(3063):at android.database.sqlite.SQLiteDatabase.finalize(SQLiteDatabase.java:1914) 01-03 09:39:18.688: E/System(3063):at java.lang.Daemons $ FinalizerDaemon.doFinalize(Daemons.java:182) 01-03 09:39:18.688:E/System(3063):at java.lang.Daemons $ FinalizerDaemon。運行(Daemons.java:168) 九月1日至3日:39:18.688:E /系統(3063):在java.lang.Thread.run(Thread.java:856)
代碼關閉連接:
@Override
public void onTerminate() {
// TODO Auto-generated method stub
super.onTerminate();
snail_mail_db.close();
snail_mail_database_helper_obj.close();
}
請提供完整的堆棧跟蹤和相關代碼。 –
我已更新我的問題 –
檢查您的堆棧跟蹤。我覺得這與您的應用或greenDAO無關。 –