2013-01-11 26 views
3


我知道有很多主題具有相同的標題,但我已經嘗試了所有這些主題。我無法解決我的問題。
我得到的錯誤是這樣的:

android.database.sqlite.SQLiteException:無法將只讀數據庫從版本0升級到1:/data/data/com.halilkaya.flashcard/databases/flashcarddb。 db

實際上,它在仿真器上工作,但是當我將它安裝在手機上時,它不起作用!android:無法將只讀數據庫從版本0升級到1

+0

你在調用'getReadableDatabase()'或'getWritableDatabase()'嗎?請發佈您用於創建和打開數據庫的代碼。 – Sam

+0

它可能是存儲在內存中的損壞數據。嘗試在設備設置中進入應用程序並管理應用程序,然後清除數據。 – codeMagic

+0

是的,我打電話給很多地方。我把它放到try ... catch結構中,並且它給出了這個錯誤。 – halilkaya

回答

4

希望你刪除表,並對其進行升級aagain如下

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS " + LOCATION_TABLE); 
    db.execSQL("DROP TABLE IF EXISTS " + PHONE_TABLE); 
    // Create tables again 
    onCreate(db); 

} 
+0

我有一張桌子。如果存在,我放棄了它......但它不再工作。 – halilkaya

+0

希望你沒有使用dbdelete,請再試一次... http://stackoverflow.com/questions/7313029/sqliteexception-cant-upgrade-read-only-database-from-version-1-to-2 –

+0

我看了在這個話題上。我已經沒有使用db.delete。在這個主題中,解決方案是drop table如果存在...我也試過了,但不幸的是它沒有再次工作:( – halilkaya

0

當我打這個還有一個SQL異常早在logcat的(我的HTC ONEX測試手機喜歡隱藏崩潰,讓我去尋找他們而不是崩潰)。我的升級邏輯中有一個格式錯誤的聲明。一旦我清除了,我不再有「不能升級只讀數據庫」的錯誤。

0

這是一個使用意圖從onclick按鈕開始的類。

public class disp_emails_sent extends Activity 

...... 
protected void onCreate(Bundle bd) 
    { 
     super.onCreate(bd); 
     setContentView(R.layout.disp_db_res); 

     lv = (ListView) findViewById(R.id.myEmail_list); 

     List<String> arrayL = new ArrayList<String>(); 
     db_handler dbHand = new db_handler(disp_emails_sent.this); 

(disp_emails_sent.this)上面顯示的通常是您要傳遞上下文的位置。這個.getApplicationContext()不適合我,但是這樣做。

不知道它是如何工作的,但它做到了。

嘗試了社區提供的上述答案,但這不是問題。

想要一個解釋,如果任何人有它。

相關問題