android - 无法解析符号 RoomDatabase

标签 android dependencies android-room

我想尝试 Room Persistence 库,但是在使用 gradle 添加和下载它之后,我可以找到大多数类,除了:

import android.arch.persistence.room.Database;
import android.arch.persistence.room.RoomDatabase;

import com.doors.geopoly.dal.entities.User;

@Database(entities = {User.class}, version = 1)

public abstract class GeoDatabase extends RoomDatabase {
    public abstract UserDao userDao();
}

每个房间库类都存在,除了 RoomDatabase 在 IDE 中将显示为红色,表示它无法解析该符号。

为什么?

这是我的gradle配置:
project(":core") {
    apply plugin: "java"


    dependencies {
        compile "com.badlogicgames.gdx:gdx:$gdxVersion"

        implementation "android.arch.persistence.room:runtime:1.1.1"
        annotationProcessor "android.arch.persistence.room:compiler:1.1.1"
    }
}

最佳答案

看来您像 Clean Architecture 这样的层分开了.

如果我们假设您使用一个单独的模块来包装所有数据库事务等等,名为 db_module
您应该注意 RoomlifecycleAware 的 Android 库并且依赖于Android平台,所以你必须定义你的db_module - 包含 Room - 作为 Android 库。

所以它只是使用

apply plugin: "com.android.library"

代替
apply plugin: "java"

这会将您的 java 模块更改为包含 Android OS 属性的 android 模块。

关于android - 无法解析符号 RoomDatabase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54381973/

相关文章:

java - 如何创建Maven依赖bat文件?

java - 如何查询用户输入?

android - Room 无法验证数据完整性。看起来您已更改架构但忘记更新版本号

java - 如何在 Maven Artifact 中运行 Java 类,自动解析依赖关系?

java - hibernate + Maven + MySQL 连接器

Android Room notNull 字段需要 null 默认值

java - Android Studio : Code is done, 但每次我尝试运行时应用程序都会崩溃

android - EditText 的自定义字典

android - 为不同的布局使用不同的资源。布局区别

android - 带有MVVM的Android自定义对话框