【问题标题】:Can't install app after delete folder contain database in Android删除文件夹包含Android中的数据库后无法安装应用程序
【发布时间】:2016-03-18 08:04:23
【问题描述】:

我使用 SQLite 来包含数据。

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

并再次打开应用显示错误:不幸的是,记录已停止。

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

log cat Window 抛出异常:

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

我在创建中的代码是:

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);
}

如何解决这个错误?非常感谢。

【问题讨论】:

  • 您需要卸载旧应用才能再次安装相同的应用

标签: android sqlite


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多