簡體   English   中英

更改db文件導致SQLiteDatabase.openDatabase()崩潰

[英]Altering db file is causing SQLiteDatabase.openDatabase() to crash

我可以正常打開數據庫文件,當僅使用元數據表打開空白的db文件時,它的工作效果很好,但是一旦創建另一個表,它就會導致應用程序崩潰。 也許是不同版本的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')

再添加1個表:

CREATE TABLE something (
  column1, 
  column2, 
  column3, 
  PRIMARY KEY (column1)
);

編輯:好的,我有新信息。 如果我不喜歡db文件,請通過電子郵件將其發送給我自己,然后將其替換回到原始目錄中。 會崩潰的。 是的,你聽到了我的聲音。 我什至不更改文件,我只是通過電子郵件將文件發送給自己,刪除原始文件,然后將其替換為完全相同的文件。 然后它崩潰了。 我要把頭發扯掉。

如我所見,您正在以只讀模式打開數據庫。 添加表-是一種修改,拋出的異常表明您應在修改表方案或添加\\刪除某些數據之前以寫模式打開它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM