Кроме того, версия, которая работала для меня, была: 2.1.0-alpha04 Итак, мой номер комнаты был точно:

аюсь использовать сопрограммы kotlin для доступа к базе данных комнаты методом, описаннымВот, добавил плагин и зависимость, и включил сопрограммы kotlin в Gradle.

вGradle файл:

    kotlin {
    experimental {
        coroutines 'enable'
    }
}
dependencies { implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:0.21" ...}

Итак, я добавилsuspend ключевое слово для всех методов в классе дао, например:

Дао класс

@Query("select * from myevent")
suspend fun all(): List<MyEvent>

@Delete
suspend fun deleteEvent(event: MyEvent)
...

и построить, а затем получить эти ошибки

ошибка

e: C:\Users\projectpath\app\build\tmp\kapt3\stubs\debug\com\robyn\myapp\data\source\local\EventsDao.java:39: error: Deletion methods must either return void or return int (the number of deleted rows). public abstract java.lang.Object deleteEventById(@org.jetbrains.annotations.NotNull() ^ e: C:\Users\projectpath\app\build\tmp\kapt3\stubs\debug\com\robyn\myapp\data\source\local\EventsDao.java:41: error: Query method parameters should either be a type that can be converted into a database column or a List / Array that contains such type. You can consider adding a Type Adapter for this. kotlin.coroutines.experimental.Continuation<? super kotlin.Unit> p1);

ссылки об ошибках ведут кавтогенерируемая Дао класс. Сгенерированные методы в этом классе теперь каждый имеет дополнительный параметр этого типаContinuation , как это:

автоматически сгенерированный дао класс

@org.jetbrains.annotations.Nullable()
@android.arch.persistence.room.Delete()
public abstract java.lang.Object deleteAllEvents(@org.jetbrains.annotations.NotNull() // error indicates at this line
java.util.List<com.robyn.myapp.data.MyEvent> events, @org.jetbrains.annotations.NotNull()
kotlin.coroutines.experimental.Continuation<? super kotlin.Unit> p1); // error indicates at this line
...

Я попытался удалить сгенерированный класс dao и пересобрать, чтобы отменить его, все еще получаю эти ошибки. Я считаю, что не использоватьlauch{} метод но использоватьsuspend ключевое слово, потому что в коде есть много мест для запроса базы данных.

Как я могу это исправить?

Ответы на вопрос(2)

Ваш ответ на вопрос