2010-03-05 16 views
3

有誰知道這意味着什麼?我試圖在onActivityResult()中啓動一個事務來根據收到的結果插入一行。SQLiteException未知的錯誤

03-05 15:39:51.937: ERROR/Database(2387): Failure 21 (out of memory) on 0x0 when preparing 'BEGIN EXCLUSIVE;'.

03-05 15:39:51.967: DEBUG/AndroidRuntime(2387): Shutting down VM 03-05 15:39:51.967: WARN/dalvikvm(2387): threadid=3: thread exiting with uncaught exception (group=0x40013140)

03-05 15:39:51.967: ERROR/AndroidRuntime(2387): Uncaught handler: thread main exiting due to uncaught exception

03-05 15:39:52.137: ERROR/AndroidRuntime(2387): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {com.ozdroid/com.ozdroid.load.LoadView}: android.database.sqlite.SQLiteException: unknown error: BEGIN EXCLUSIVE;

...

03-05 15:39:52.137: ERROR/AndroidRuntime(2387): Caused by: android.database.sqlite.SQLiteException: unknown error: BEGIN EXCLUSIVE;

...

03-05 15:39:52.137: ERROR/AndroidRuntime(2387): at android.database.sqlite.SQLiteDatabase.beginTransaction(SQLiteDatabase.java:434)

回答

9

我有這種事發生在我在兩種情況下:

  1. 當SQL語句包含語法錯誤
  2. beginTransaction被稱爲未打開數據庫連接上

看起來你已經進入第二。檢查你的語法,並確保你open()(和不要close())你的數據庫之前你叫beginTransaction

而且我認爲我們可以同意由此產生的logcat錯誤消息不是100%有幫助的。

+1

非常感謝!這似乎是我關閉了我的連接! – davs 2011-03-11 11:39:51