我有一个带预装数据库的应用程序。
我的临时复制功能就像这样
private void copyDatabase() {
AssetManager assetManager = context.getResources().getAssets();
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open(DATABASE_NAME);
out = new FileOutputStream(DATABASE_FILE);
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) > 0){
out.write(buffer, 0, read);
}
} catch (IOException e) {
Log.e("error", e.getMessage());
} finally {
if(in != null) {
try {
in.close();
}catch (IOException e) {
Log.e("error", e.getMessage());
}
}
if(out != null) {
try {
out.close();
}catch (IOException e) {
Log.e("error", e.getMessage());
}
}
}
}
然而,在Android 2.2上,我一直收到错误"数据库磁盘映像格式错误"。所以我继续把它从设备上复制到我的电脑上。果然,它不会打开。我对这两个文件进行了十六进制比较,并且有10个实例,其中1个字节不同。 Hex 0D在格式错误的副本中的随机点中添加了10次 复制例程在3.x +中正常工作。我也使用相同的方法开发了其他应用程序,并且没有问题。
有什么想法吗?
答案 0 :(得分:0)
不确定是什么问题,但我创建了一个新的sqlite数据库,导入数据,这似乎有用。