android:无法将只读数据库从版本0升级到1

时间:2013-01-11 21:47:45

标签: android database version upgrade


我知道有很多主题都有相同的标题,但我已经尝试了所有这些主题。我无法解决我的问题 我得到的错误就是这样:

android.database.sqlite.SQLiteException:无法将只读数据库从版本0升级到1:/data/data/com.halilkaya.flashcard/databases/flashcarddb.db

实际上,它可以在模拟器上运行,但是当我在手机上安装它时,它不起作用!

3 个答案:

答案 0 :(得分:4)

希望您放弃桌面并再次升级,如下所示

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);

}

答案 1 :(得分:0)

当我点击这个时,logcat中的另一个sql异常(我的HTC OneX测试手机喜欢隐藏崩溃并让我去寻找它们而不仅仅是崩溃)。我的升级逻辑中有一个格式错误的语句。一旦我清除了它,我就不再能够升级只读数据库"错误。

答案 2 :(得分: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)通常是您传递上下文的位置。 this.getApplicationContext()对我来说没有用,但确实如此。

不确定它是如何工作的但确实如此。

尝试过社区提供的上述答案,但这不是问题。

想要解释是否有人有。