[解決済み】Android room persistent: AppDatabase_Impl が存在しない。
2022-04-10 05:47:53
質問
私のアプリのデータベースクラス
@Database(entities = {Detail.class}, version = Constant.DATABASE_VERSION)
public abstract class AppDatabase extends RoomDatabase {
private static AppDatabase INSTANCE;
public abstract FavoritesDao favoritesDao();
public static AppDatabase getAppDatabase(Context context) {
if (INSTANCE == null) {
INSTANCE =
Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, Constant.DATABASE).allowMainThreadQueries().build();
//Room.inMemoryDatabaseBuilder(context.getApplicationContext(),AppDatabase.class).allowMainThreadQueries().build();
}
return INSTANCE;
}
public static void destroyInstance() {
INSTANCE = null;
}
}
Gradleのライブラリです。
compile "android.arch.persistence.room:runtime:+"
annotationProcessor "android.arch.persistence.room:compiler:+"
そして、インスタンスを要求すると、AppDatabase_Implが存在しない、というエラーが表示されます。
私のアプリケーションクラスでは
public class APp extends Application {
private boolean appRunning = false;
@Override
public void onCreate() {
super.onCreate();
AppDatabase.getAppDatabase(this); //--AppDatabase_Impl does not exist
}
}
解決方法は?
で作業している人へ
コトリン
を変更してみてください。
annotationProcessor
を
kapt
アプリの中で
build.gradle
を例にとって説明します。
// Extensions = ViewModel + LiveData
implementation "android.arch.lifecycle:extensions:1.1.0"
kapt "android.arch.lifecycle:compiler:1.1.0"
// Room
implementation "android.arch.persistence.room:runtime:1.0.0"
kapt "android.arch.persistence.room:compiler:1.0.0"
また、このプラグインを追加することを忘れないでください。
apply plugin: 'kotlin-kapt'
をアプリレベルのbuild.gradleファイルの先頭に追加し、クリーンアップと再構築を行います(下記参照)。 https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#6 )
Android Studioで、コードの貼り付け時やビルド中にエラーが発生した場合は、Build >Clean Projectを選択してください。その後、Build > Rebuild Project を選択し、再度ビルドしてください。
アップデイト
androidxに移行された方
def room_version = "2.3.0" // check latest version from docs
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
UPDATE 2(2021年7月以降)
def room_version = "2.3.0" // check latest version from docs
implementation "androidx.room:room-ktx:$room_version"
kapt "androidx.room:room-compiler:$room_version"
関連
-
[解決済み】Android 8:クリアテキストのHTTPトラフィックが許可されない
-
[解決済み] Javaで拡張子なしのファイル名を取得する方法は?
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] Javaコンパイラーエラー:ステートメントではありません
-
[解決済み] .lengthが解決できない、またはフィールドでない
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] EclipseのAndroidプラグインで "Debug certificate expired "エラーが発生する。
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] getContentPane()は具体的に何をするのですか?
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] javaで部分クラスを実装する方法
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] eclipseからTomcatに物理的に発行されるmyjspはどこにあるのでしょうか?
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] init-paramとcontext-param
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました
-
[解決済み] ルーム - スキーマエクスポートディレクトリがアノテーションプロセッサに提供されていないため、スキーマをエクスポートできない