2013-03-11 49 views
1

我的代碼空指針異常看起來是這樣的:DatabaseHandler.close() - 即使檢查

if (dbHandler != null) dbHandler.close(); 

怎麼可能讓這條線一個NullPointerException?它看起來像我在SQLite的系統功能中獲得NPE。

當然還有更多類似的功能,但我認爲基本結構已被證明。奇怪的是,這發生在一個用戶身上(至少我們不知道其他人)。該設備應該是三星SII採用Android 4.0.4

編輯 通過改寫數據庫處理器解決,propably有一些更多的情況下的危險。

+0

什麼是dbHandler?這是你的班級嗎? – Sam 2013-03-11 20:18:20

+1

@Sam,我沒有看到你的評論。我剛剛把我的。 – 2013-03-11 20:22:22

+0

你有多個線程可以訪問數據庫嗎?我只在應用程序類中打開我的數據庫一次,並且從不關閉它。 – WarrenFaith 2013-03-11 20:26:41

回答

-1

我想知道完全相同的東西(請參閱上面的包含代碼)。這只是沒有意義,這是發生。

0

您的dbHandler對象可能引用了一個空的SQLiteDatabase。

+0

這是可能的。但不關閉()控制空數據庫? 'public synchronized void close(){if(mIsInitializing)throw new IllegalStateException(「在初始化期間關閉」); if(mDatabase!= null && mDatabase.isOpen()){ mDatabase.close(); mDatabase = null; } }' – PetrD 2013-03-11 20:29:08

+0

你可以包含你的DatabaseHandler類的代碼嗎? – 2013-03-12 01:53:00

+0

我更新了問題 – PetrD 2013-03-12 14:27:44

相關問題