我知道有很多主题具有相同的标题,但我已经尝试了所有主题。我无法解决我的问题。
我得到的错误正是这样的:
android.database.sqlite.SQLiteException: Can't Upgrade read-only database from version 0 to 1: /data/data/com.halilkaya.flashcard/databases/flashcarddb.db
实际上,它有效在模拟器上可以,但是当我安装到手机上时,它不起作用!
在我的数据库的第一个版本中,我有三行.以下方法属于扩展的类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)