删除文件夹包含Android中的数据库后无法安装应用程序

时间:2016-03-18 08:04:23

标签: android sqlite

我使用SQLite来包含数据。

我删除的文件夹包含数据库包括:callrecord.dbcallrecord.db-journal个文件。

再次打开应用程序显示错误:不幸的是,Record已停止。

所以我更改path以在代码中创建新路径,但是何时再次运行会再次出现错误。

log cat Window抛出异常:

  

无法启动活动ComponentInfo {kr.co.composer.callrecord / kr.co.composer.callrecord.page.MainActivity}:android.database.sqlite.SQLiteCantOpenDatabaseException:未知错误(代码14):无法打开数据库< / p>

我在create中的代码是:

public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = Environment.getDataDirectory().getAbsolutePath() + "/Lapsoft-CRM/callrecord.db";
public CallDatabaseHelper(Context context){
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    String sql = "create table " + TABLE_NAME + " ("
            + ROW_ID + " integer primary key autoincrement, "
            + NAME + " varchar, "
            + PHONE_NUMBER + " varchar, "
            + START_TIME + " varchar, "
            + CALL_TIME + " varchar, "
            + SEND_RECEIVE + " varchar, "
            + PHOTO_ID + " integer, "
            + FILE_NAME + " varchar"
            +");";
    Log.i("Tạo 1 bản cơ sở dữ liệu", sql);
    db.execSQL(sql);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    String sql = "drop table if exists " + TABLE_NAME + ";";
    db.execSQL(sql);
    onCreate(db);
}

如何解决此错误?非常感谢你。

1 个答案:

答案 0 :(得分:0)

数据库文件名(DATABASE_NAME)不应包含任何目录。

只需使用基本文件名("callrecord.db");然后,如果需要,将自动创建目录。