3

我在 StackOverflow 上提出了不同的问题,但我的问题有点新。

所有这些都不起作用: Question1 Question2 Question3

我将设备更新为 Android KitKat 4.4,当我尝试使用以下代码复制数据库时:

private void copyDataBase() throws IOException {
    InputStream myInput = context.getAssets().open(DB_NAME);
    String outFileName = DB_PATH + DB_NAME;
    OutputStream myOutput = new FileOutputStream(outFileName);
    byte[] buffer = new byte[1024];
    int length;
    while ((length = myInput.read(buffer)) > 0) {
        myOutput.write(buffer, 0, length);
    }
    myOutput.flush();
    myOutput.close();
    myInput.close();
}

我在以下行获得了 FileNotFoundException:

OutputStream myOutput = new FileOutputStream(outFileName);

有人在 Android KitKat 上解决了这个问题???(其他平台效果很好)

感谢帮助。

朱利奥

4

1 回答 1

4

完全硬编码

从不硬编码路径用于getDatabasePath()查找数据库的适当位置。

其他平台效果很好

对于辅助帐户,它肯定会在 Android 4.2+ 平板电脑上崩溃。它也可能在其他环境中崩溃。从不硬编码路径

请注意,SQLiteAssetHelper使用getDatabasePath().

于 2013-11-19T12:35:04.570 回答