我使用SQLite来包含数据。
我删除的文件夹包含数据库包括:callrecord.db
和callrecord.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);
}
如何解决此错误?非常感谢你。
答案 0 :(得分:0)
数据库文件名(DATABASE_NAME
)不应包含任何目录。
只需使用基本文件名("callrecord.db"
);然后,如果需要,将自动创建目录。