これは少し遅れるかもしれませんが、これがこの問題を抱えている人に役立つことを願っています(私は周りに決定的な解決策を見つけることができないので)。
私はこの原因の理由を知っていると思います(少なくとも私の場合)。 DDMS->ファイルエクスプローラーを見る 、データベースフォルダ(/ data / data // databases /) 存在しないため、アプリケーションはその存在しないフォルダーにデータベースファイルを作成できません。何らかの方法でデータベースフォルダを作成できれば、この問題を回避できます。
私は怠け者なので、 / data / data //files/フォルダを使用しました エミュレーターモードのとき。これを使用してファイルディレクトリを取得できます:
context.getFilesDir().getPath()
これは、エミュレーターで私にとって見事に機能しました。
これが誰かに役立つことを願っています。
コードを見たい場合:
String dbFilename = "example.db";
try
{
File databaseFile = getDatabasePath(dbFilename);
SQLiteDatabase _db = SQLiteDatabase.openOrCreateDatabase(databaseFile);
} catch (Exception e)
{
String databasePath = getFilesDir().getPath() + "/" + dbFilename;
File databaseFile = new File(databasePath);
_db = SQLiteDatabase.openOrCreateDatabase(databaseFile);
}
編集:私はエミュレーターでFacebook(私のアプリにはFB統合があります)にログインしようとしました、そして/ databasesフォルダーはその後現れました(そして持続しました)。何が起こったのかはわかりませんが、どういうわけかそのフォルダを作成することは可能です。このあたりの別の専門家が光を当てるための何か。