まず、この記事を見て、アプリケーションの互換性WAL(先行書き込みログ)のAndroid SQLiteデータベースに関するプレゼンテーション
アンドロイド9互換性のWAL(先行書き込みログ)と呼ばれる導入のSQLiteデータベースのデータベースの使用を可能にする特別なモード、
journal_mode=WAL
接続ごとにデータベースの最大保持挙動を維持しながら、。アプリケーションが含まれていない限り、データベース・アプリケーションは、デフォルトの互換性WALによって有効:
- 呼び出すことによってSQLiteDatabase.enableWriteAheadLoggingをかdisableWriteAheadLoggingオプトインログイン禁止または書き込みアヘッド
- 呼び出すことによって
SQLiteDatabase.OpenParams.setJournalMode(String mode)
、明示的な要求ログ・モード著者:ben3726
リンクします。https://www.jianshu.com/p/9cbe3839a1e2
出典:ジェーンの本が
著者によって著作権で保護されています。著者は認可商業転載してください接触、非商用の転載は、ソースを明記してください。
図は、App Android9.0データベースディレクトリにデータベースのローカルコピーです。
この図は、ディレクトリの別のAndroid版です。
だから、問題は、読み取り不良や崩壊が生じ、不完全な-walファイルをデータベースアプリのデータレコードのコピーを読んだ後、
チェックオンラインソリューションの後、無効WALモードに言われて、
プロジェクトはgreenDaoパーティのライブラリを使用しているため、ここではgreenDaoソリューションを書くために、ソリューションAndroidのネイティブデータベースは類似していなければなりません。
private void initGreenDao() {
mHelper = new DaoMaster.DevOpenHelper(this, DB_NAME);
db = mHelper.getWritableDatabase();
//在初始化greenDao的地方加上这一行
db.disableWriteAheadLogging();
mDaoMaster = new DaoMaster(db);
mDaoSession = mDaoMaster.newSession();
}
導入後、次のようにアプリケーションがコンパイルされ、インストールディレクトリデータベースをデータベース
私は、あなたが無効になっWALモードを持っていることがわかります.walファイルが存在しない、アプリを開いて、問題はありません。
最後は、エミュレータとファイルをデバッグ実機を表示するには、Android Studioのデバイスファイルエクスプローラツールのアプリカタログを開く方法に掲載しました
上部のナビゲーションバーは、Android Studio3.5バージョンに続いて開き、[表示 ]> [ - ツールのWindows - > [ デバイスのファイルエクスプローラ
オーバー!