1

->はい、SDカードにSq-liteデータベースがあります。

  (String DB_PATH = Environment.getExternalStorageDirectory().getPath().toString();)

->データベースが存在するかどうかの確認

        dbFile = new File(DB_PATH + DB_NAME );
        if(dbFile.exists()== true)
        {
            //set text db exists
            open_DB();

        }
        else 
        {
            //set text db does not exist
            return;
        }

->デバッグ時にデータベースファイルの存在を確認できました。しかし、データベースを開く
と例外が発生します

    SQLiteDatabase checkDB = null;
    try 
    {
        dbFile = new File(DB_PATH + DB_NAME);
        myDataBase = SQLiteDatabase.openOrCreateDatabase(dbFile, null);

        //myDataBase = SQLiteDatabase.openDatabase(DB_PATH + DB_NAME, null, 0);
        //also tried this

        //set text bd opened
    }
    catch(SQLiteException e) 
    {
        //set text bd unable open
        return;
    }
4

1 に答える 1

0

おそらく問題はフラグまたはファイルが原因であるため、これを使用してみてください:

dbFile = new File(DB_PATH + DB_NAME);
if (dbFile.exists()) {
   db = SQLiteDatabase.openDatabase(db_path, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS | SQLiteDatabase.CREATE_IF_NECESSARY);
}

お知らせ下さい。

于 2013-02-22T08:49:05.280 に答える