我有一个非常不寻常的问题。
我正在尝试创建一个简单的数据库(6 个表,其中 4 个只有 2 列)。我正在使用我在以前的项目中使用过的内部数据库库,它确实有效。
但是,在我当前的项目中,偶尔会出现错误。基本上数据库没有正确创建。它被添加到 sdcard 中,但是当我访问它时,我得到一个DatabaseException
.
当我从桌面管理器访问设备并尝试打开数据库(使用 SQLite 数据库浏览器 v2.0b1)时,我得到“文件不是 SQLite 3 数据库”。
更新
我发现当我从 sdcard 中手动删除数据库时会发生这种情况。由于无法阻止用户这样做,我能做些什么来处理它吗?
代码
public static boolean initialize()
{
boolean memory_card_available = ApplicationInterface.isSDCardIn();
String application_name = ApplicationInterface.getApplicationName();
if (memory_card_available == true)
{
file_path = "file:///SDCard/" + application_name + ".db";
}
else
{
file_path = "file:///store/" + application_name + ".db";
}
try
{
uri = URI.create(file_path);
FileClass.hideFile(file_path);
} catch (MalformedURIException mue)
{
}
return create(uri);
}
private static boolean create(URI db_file)
{
boolean response = false;
try
{
db = DatabaseFactory.create(db_file);
db.close();
response = true;
} catch (Exception e)
{
}
return response;
}