我在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();
}
我在第:
行获得了一个FileNotFoundExceptionOutputStream myOutput = new FileOutputStream(outFileName);
有人在Android KitKat上修复此问题??? (其他平台效果很好)
感谢您的帮助。
Giulio的
答案 0 :(得分:4)
完全硬编码
永远没有硬编码路径。 Use getDatabasePath()
为数据库找到合适的位置。
其他平台效果很好
对于辅助帐户,它肯定会在Android 4.2+平板电脑上崩溃。它也可能在其他环境中崩溃。 永远没有硬编码路径。
请注意,SQLiteAssetHelper
使用getDatabasePath()
。