我正常打开一个数据库文件,当打开一个只有元数据表的空白数据库文件时它完全正常,但是一旦我创建另一个表,就会导致应用程序崩溃。也许它是不同版本的db文件?如果您需要更多代码,请发表评论
private static String DB_PATH = "/data/data/com.example.andrew.ubair4/databases/";
private static String DB_NAME = "coordinates";
String myPath = DB_PATH + DB_NAME;
private SQLiteDatabase db;
public DataBaseHelper(Context context){
super(context, DB_NAME, null, 1);
this.myContext = context;
Log.d("TAGG","enter constructor");
db = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY); //<---- crashes right here IF I have a second table in the database
Log.d("TAGG","2");
我的元数据表:
CREATE TABLE "android_metadata" ("locale" TEXT DEFAULT 'en_US')
INSERT INTO "android_metadata" VALUES ('en_US')
再添加一张表:
CREATE TABLE something (
column1,
column2,
column3,
PRIMARY KEY (column1)
);
编辑:好的,我有新的信息。如果我采取db文件,请将其通过电子邮件发送给自己,并将其替换回原始目录。它会崩溃。是的你听到了我我甚至不会改变文件,我只是将文件通过电子邮件发送给自己,删除原始文件,然后用完全相同的文件替换它。然后它崩溃了。我要把头发撕掉了。
答案 0 :(得分:1)
正如我所看到的,您正在以只读模式打开数据库。添加表 - 是一种修改,抛出异常表明您应该在修改方案或添加\删除某些数据之前以写入模式打开它。