Не удается разрешить символ RoomDatabase - PullRequest
0 голосов
/ 26 января 2019

Я хочу попробовать библиотеку 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"
    }
}

1 Ответ

0 голосов
/ 26 января 2019

Кажется, что вы разделили слои, как Чистая архитектура .

, если предположить, что вы используете отдельный модуль для переноса всех транзакций БД и т. Д. С именем db_module

Обратите внимание, что Room - это библиотека Android, которая lifecycleAware и зависит от платформы Android, поэтому вы должны определить свой db_module - содержащий Room - как библиотеку Android.

так что он просто использует

apply plugin: "com.android.library"

вместо

apply plugin: "java"

, и это превращает ваш Java-модуль в модуль Android, который содержит свойства ОС Android.

...