我想尝试 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
您应该注意 Room
是 lifecycleAware
的 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/