Android 应用仅在发布 APK 时崩溃

yvi*_*yvi 1 android apk

我有一个奇怪的问题。我构建了一个在调试模式下运行良好的应用程序(直接调试到我的手机并在我的手机上安装了调试 APK)但是如果我使用发布版本 APK,该应用程序会在某一时刻崩溃。我发现应用程序在发布 APK 时崩溃,但我不知道为什么以及我能做什么:

protected final String TABLE = "done";
protected final String COL_ID = "_id";
protected final String COL_TASK = "taskid";
protected final String COL_DATE = "donedate";

protected String getLastDoneDate(String id) {
    String date = "";

    String filter = COL_TASK + " LIKE ?";
    String[] filterArgs = new String[] {id};
    String sortOrder = COL_DATE + " DESC";
    String[] columns = new String[] {COL_DATE};
    Cursor c = MyTime.db.query(TABLE, columns, filter, filterArgs, null, null, sortOrder, "1");
    if (c.moveToFirst()) {
        date = c.getString(c.getColumnIndex(COL_DATE));
    }
    c.close();

    return date;
}
Run Code Online (Sandbox Code Playgroud)

如果我删除行 Cursor c = ... (以及所有根据 c)它的工作原理。

数据库看起来像这样:

CREATE TABLE IF NOT EXISTS done (
                _id INTEGER PRIMARY KEY autoincrement,
                taskid INTEGER,
                donedate TEXT DEFAULT '');
Run Code Online (Sandbox Code Playgroud)

摇篮片段:

buildTypes {
    release {
        shrinkResources false
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        shrinkResources false
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

我无法调试以发现问题,因为调试时不会发生崩溃。

有人可以帮我解决这个问题吗?

yvi*_*yvi 8

我在我的 gradle 文件中添加了 debuggable = true 并找到了我的问题的原因。

buildTypes {
release {
    shrinkResources false
    debuggable true
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
    shrinkResources false
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Run Code Online (Sandbox Code Playgroud)

未创建表“完成”,因为我试图将两个表创建语句放入单个 db.execSQL()