私は非常に珍しい問題を抱えています。
単純なデータベースを作成しようとしています (6 つのテーブルのうち、4 つのテーブルには 2 つの列しかありません)。以前のプロジェクトで使用した社内データベース ライブラリを使用していますが、機能します。
しかし、私の現在のプロジェクトでは時折バグがあります。基本的に、データベースは正しく作成されていません。SDカードに追加されますが、アクセスするとDatabaseException
.
デスクトップ マネージャーからデバイスにアクセスし、(SQLite Database Browser v2.0b1 を使用して) データベースを開こうとすると、「ファイルは SQLite 3 データベースではありません」というメッセージが表示されます。
更新
SDカードからデータベースを手動で削除すると、これが発生することがわかりました。ユーザーがそれを行うのを止める方法がないので、それを処理するために私にできることはありますか?
コード
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;
}