相关疑难解决方法(0)

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


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

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

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

database android upgrade version

3
推荐指数
1
解决办法
9653
查看次数

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

在我的数据库的第一个版本中,我有三行.以下方法属于扩展的类SQLiteOpenHelper.

@Override
public void onCreate(SQLiteDatabase database) {
    database.execSQL("CREATE TABLE " + DATABASENAME + " (name TEXT, latitude REAL, longitude REAL);");
}
Run Code Online (Sandbox Code Playgroud)

现在,我已将版本号从1更改为2,并添加了一个新行:

@Override
public void onCreate(SQLiteDatabase database) {
    database.execSQL("CREATE TABLE " + DATABASENAME + " (name TEXT, latitude REAL, longitude REAL, country TEXT);");
}
Run Code Online (Sandbox Code Playgroud)

我不在乎旧数据库丢失了,所以我在升级时使用它:

@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
    db.delete(DATABASENAME, null, null);
    onCreate(db);
}
Run Code Online (Sandbox Code Playgroud)

现在,当我调用该方法时getReadableDatabase(),应用程序崩溃,导致logcat错误

引起:android.database.sqlite.SQLiteException:无法将只读数据库从版本1升级到2:/data/data/com.myapp.app/databases/mydb

我怎么能阻止这个?

编辑

全班:

public class StationsOpenHelper extends SQLiteOpenHelper {

    private static final String DATABASENAME …
Run Code Online (Sandbox Code Playgroud)

sqlite android

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×2

database ×1

sqlite ×1

upgrade ×1

version ×1