当前位置: 首页 > 面试题库 >

持续的Android会议室:AppDatabase_Impl不存在

公良浩邈
2023-03-14
问题内容

我的应用程式资料库类别

@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

    }

}

问题答案:

对于那些使用 Kotlin的人 ,请尝试在应用中更改annotationProcessorkapt``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.2.3" // check latest version from docs

implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"


 类似资料:
  • 问题内容: 我(几乎)成功地将Node.js与Express和Redis结合使用来处理会话。 我遇到的问题是使用时不保留会话。 这是我的看到方式: console.log()打印: 现在,这是以下代码: 这个console.log()打印出: 显然,“用户名”对象已消失。该会话没有保留它,而是重新构建了一个新会话。 我该如何解决?如果您需要任何信息,请不要犹豫。 这是我设置会话管理的代码: 这是基

  • 企业会议室管理系统,帮助企业高效有秩序的组织会议,打通了预订会议室、会议通知、会议签到的会议完整流程。此次新版智能会议室增加审批和会议室使用权限等功能,实现更高效、智能化的企业会议室管理方案。 录入会议室 手机上录入会议室 入口:工作-智能会议室-设置会议室-会议室管理 选中工作台选择智能会议室 选择会议室管理 进入会议室管理 添加会议室 电脑上录入会议室 入口:企业管理后台-工作台-智能会议室

  • 我想使用Jitsi-meet-API创建一个聊天室(https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-iframe)在房间有密码之前。 我遇到的问题是,pwd只有在会议活跃时才有效。我不能提前计划。Jitsi API没有我可以使用的事件或选项。 下面是我用来构造Jitsi对象的代码。但是房间马上就被创建了,当启动房间的窗口关闭时,所

  • 问题内容: 给定的:使用Android Studio向导创建的简单Activity, 内部没有任何自定义代码 ,会永久占用调用dumpGfxInfo()的内存。 Android Studio在Allocation Tracker中的构建至少揭示了 三个 相同的线程: 显然,dumpGfxInfo()通过为空字符串分配内存来消耗内存。编译中唯一相关的依赖项是 com.android.support:

  • 我的类与共享首选项交互。 它从共享首选项加载一个字符串集,默认值包含22个字符串,保存在其<代码>章节 变量中。 当一个"完成"事件在程序的后面发生时,Storyteller会从中删除一个String,然后将其提交给Shared首选项。 我的日志显示最初加载了22个字符串,然后删除并提交到编辑器后加载了21个字符串。 当我再次运行程序时,加载的是22章,而不是预期的21章。 第一次运行的日志: 第

  • 问题内容: 我需要通过使用带有Dao Class的sqllite房间查询来编写此查询。I.getItemID()是一个动态变量。 问题答案: 请查看此链接,以获取有关使用房间访问数据的更多信息。