【问题标题】:Cannot resolve symbol RoomDatabase无法解析符号 RoomDatabase
【发布时间】:2019-10-02 03:18:42
【问题描述】:

我想试试 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"
    }
}

【问题讨论】:

    标签: android dependencies android-room


    【解决方案1】:

    您似乎像Clean Architecture 这样分离了层。

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

    您应该注意Room 是一个Android 库,它是lifecycleAware 并且依赖于Android 平台,因此您必须将包含Room 的db_module 定义为一个Android 库。

    所以它只是使用

    apply plugin: "com.android.library"
    

    而不是

    apply plugin: "java"
    

    这会将您的 java 模块更改为包含 Android 操作系统属性的 android 模块。

    【讨论】:

      【解决方案2】:

      由于某种原因,我遇到了与 OP 相同的错误,没有提供任何建议。

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

      import androidx.room.RoomDatabase;
      

      【讨论】:

        猜你喜欢
        • 2018-11-11
        • 1970-01-01
        • 1970-01-01
        • 2021-02-04
        • 2016-12-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多