Поэтому вы можете проверить реализацию всей библиотеки комнат, а не смотреть на разбившихся местных жителей.

ласс базы данных приложения

@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 lib:

 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

    }   

}
 Krunal03 янв. 2018 г., 09:53
@pratikdeshai Вы получили какое-либо решение этой проблемы? У меня тоже такая же проблема.
 Debanjan10 окт. 2017 г., 16:51
Вы указали расположение схемы комнаты в Gradle?
 pratik deshai10 окт. 2017 г., 13:59
Причина: java.lang.RuntimeException: не удается найти реализацию для базы данных приложений. AppDatabase_Impl не существует
 Debanjan10 окт. 2017 г., 13:49
Можете ли вы указать правильную ошибку logcat?

Ответы на вопрос(7)

Используйте следующую ссылку Gradle:

compile 'android.arch.persistence.room:runtime:1.0.0-alpha9'
annotationProcessor 'android.arch.persistence.room:compiler:1.0.0-alpha9'

Вам нужно создать класс diffretn singloton и получить базу данных приложений из этого:

RoomDB.java

public class RoomDB {

private static RoomDB INSTANCE;

public static AppDatabase getInstance(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;
}

App.java

public class App extends Application {

private boolean appRunning = false;

@Override
public void onCreate() {
    super.onCreate();
    RoomDB.getInstance(this); //This will provide AppDatabase Instance
}
 pratik deshai10 окт. 2017 г., 13:57
я не создавал конструктор, я использую напрямую через статический экземпляр.
 Burhanuddin Rashid10 окт. 2017 г., 14:00
Я создал образец проекта для комнаты базы данных, вы можете проверить его здесь:github.com/burhanrashid52/Android-Room-Data-Persistent
 pratik deshai10 окт. 2017 г., 15:08
да я обновил но все равно та же ошибка, AppDatabase_Impl не существует
 pratik deshai10 окт. 2017 г., 14:48
я сделал по ссылке выше, но все та же ошибка.
 Burhanuddin Rashid10 окт. 2017 г., 14:53
Проверьте мой обновленный ответ

У меня была эта ошибка, когда я пропустил

@Database(entity="{<model.class>})

Убедитесь, что модель сущности, указанная в аннотации выше, относится к конкретному классу модели, а также убедитесь, что необходимая аннотация:

@Entity(tableName = "<table_name>" ...)

правильно определен, и вы будете хорошо

 winwaed02 июн. 2018 г., 04:36
Для ясности это идет непосредственно над определением класса DB. Кажется, это исправило мою проблему - спасибо!

Для разработчиков Kotlin

Использовать это:

implementation "android.arch.persistence.room:runtime:1.0.0"
kapt "android.arch.persistence.room:compiler:1.0.0"

И добавитьapply plugin: 'kotlin-kapt' на вершину уровня приложенияbuild.gradle.

Для разработчиков Java

implementation "android.arch.persistence.room:runtime:1.0.0"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0"

Просто используйте

apply plugin: 'kotlin-kapt'

в приложении build.gradle

И держать оба в зависимостях

annotationProcessor "android.arch.persistence.room:compiler:$rootProject.roomVersion"
kapt "android.arch.persistence.room:compiler:$rootProject.roomVersion"

РЕДАКТИРОВАТЬ

В более новой версии не нужно добавлять обе зависимости одновременно. Просто используйте, надеюсь, это сработает.

kapt 'android.arch.persistence.room:compiler:1.1.1'
 david14 сент. 2018 г., 11:13
Не работает

Котлинпопробуйте поменять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: 'kotlin-kapt' в начало файла build.gradle уровня приложения и выполнить очистку и перестройку (согласноhttps://codelabs.developers.google.com/codelabs/android-room-with-a-view/#6)

В Android Studio, если вы получаете ошибки при вставке кода или во время процесса сборки, выберите «Сборка»> «Очистить проект». Затем выберите «Построить»> «Перестроить проект», а затем снова соберите.

 david14 сент. 2018 г., 11:12
Все еще не работает
 anoop4real24 дек. 2018 г., 11:51
Это спасло меня .... Я думаю, что Google должен больше работать над отображением правильной ошибки ... У меня был вызов kapt, но я не добавил apply kapt-plugin
 Ozeetee20 мар. 2018 г., 03:58
Большое спасибо. Просто переехал в Котлин, и все мои тесты стали проваливаться. Стукнул меня по голове. Тогда я случайно увидел этот комментарий. Спас мой день.
 filthy_wizard18 сент. 2018 г., 22:05
братан! ты буквально спас мою задницу. лол. +1
 daka06 июн. 2018 г., 22:12
Также нужно добавитьapply plugin: 'kotlin-kapt' на вершину уровня приложенияbuild.gradle файл

что все ваши зависимости от комнаты имеют одинаковую версию.

implementation 'android.arch.persistence.room:rxjava2:1.1.0-alpha2'
implementation 'android.arch.persistence.room:runtime:1.1.0-alpha2'
annotationProcessor "android.arch.persistence.room:compiler:1.1.0-alpha2"

В приведенном выше фрагменте кода все мои зависимости Room имеют одинаковую версию1.1.0-alpha2

потому что я забыл apt-зависимости

implementation "android.arch.lifecycle:extensions:$archLifecycleVersion"
implementation "android.arch.persistence.room:runtime:$archRoomVersion"
annotationProcessor "android.arch.lifecycle:compiler:$archLifecycleVersion"
annotationProcessor "android.arch.persistence.room:compiler:$archRoomVersion"

После того, как добавили аннотацию Processor и пересоберите ее, проблема решена.

Ваш ответ на вопрос