无法解析符号RoomDatabase

时间:2019-01-26 19:31:09

标签: 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"
    }
}

2 个答案:

答案 0 :(得分:0)

似乎您将Clean Architecture之类的层分开了。

如果我们假设您使用一个单独的模块来包装所有数据库事务,以此类推,则命名为db_module

您应注意,RoomlifecycleAware且依赖于Android平台的Android库,因此必须将包含Room的db_module定义为Android库。 / p>

所以它只是在使用

apply plugin: "com.android.library"

代替

apply plugin: "java"

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

答案 1 :(得分:0)

由于某种原因,我和OP都有相同的错误,没有提供建议。

要修复,我必须手动创建导入:

import androidx.room.RoomDatabase;