3


我知道有许多具有相同标题的主题,但我已经尝试了所有主题。我无法解决我的问题。
我得到的错误正是这个:

android.database.sqlite.SQLiteException: Can't upgrade read-only database from version 0 to 1: /data/data/com.halilkaya.flashcard/databases/flashcarddb.db

实际上,它有效在模拟器上,但是当我将它安装到我的手机上时,它不起作用!

4

3 回答 3

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

}
于 2013-01-11T21:51:48.803 回答
0

当我点击这个时,logcat 中早些时候出现了另一个 sql 异常(我的 HTC OneX 测试手机喜欢隐藏崩溃,让我去寻找它们而不是仅仅崩溃)。我的升级逻辑中有一个格式错误的语句。一旦我清除了它,我不再收到“无法升级只读数据库”错误。

于 2014-04-01T17:43:51.410 回答
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() 对我不起作用,但确实如此。

不知道它是如何工作的,但确实如此。

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

如果有人有,希望得到解释。

于 2014-08-09T03:53:56.383 回答