我的应用程序数据库类

@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;
    }
}

渐变库:

 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

    }   

}

推荐答案

对于使用Kotlin的用户,请try 在应用程序build.gradle中将annotationProcessor更改为kapt

例如:

// 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中,如果在粘贴代码或构建过程中出现错误,请 Select build>;清洁项目.然后 Select Build>;重建项目,然后重新构建.


UPDATE

如果你已经迁移到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 (since July 2021)

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"

Java相关问答推荐

如何让TaskView总是添加特定的列来进行排序?

如果给定层次 struct 级别,如何从其预序穿越构造n元树

Android视图覆盖不阻止点击它后面的控件

Springdoc Whitelabel Error Page with Spring V3

如何在访问完所有文件后加入所有线程?

无法传递消费者<;>;实例

Hibernate 6支持Joda DateTime吗?

RESTful框架类字段是安全的还是不安全的

在Spring终结点中,是否可以同时以大写和小写形式指定枚举常量?

如何对多个字段进行分组和排序?

如何将其他属性引用到log4j2 yaml配置中?

如何仅使用键/ID的一部分(组合)高效地返回映射值?

一对多关系和ID生成

STREAMS减少部分结果的问题

try 使用预准备语句占位符获取信息时出现Try-With-Resources错误

在java中使用不同的application.properties-jar而不使用Spring

Java嵌套流查找任意值

活泼的一次判断成语,结果中等

在Spring Boot中使用咖啡因进行缓存

如何使用命令行为Java应用程序生成烟雾测试用例