Search code examples
androidrx-java2android-room

Incorrect code generation from room @Query when using Flowable/Observable


When trying to use RxJava with room, I am getting an error that the generated code is wrong. When returning a Single, it works fine. But when using flowable or observable its adding an extra boolean param to the generated method causing an error.

query

@Query("SELECT * FROM cards")
fun cardsStream(): Observable<List<Card>>

error

error: no suitable method found for createObservable(RoomDatabase,boolean,String[],<anonymous Callable<List<Card>>>)

the generated method. If I remove the false then it compiles. But obviously I cannot do that as this is generated code.

return RxRoom.createObservable(__db, false, new String[]{"cards"}, new Callable<List<Card>>() {

Solution

  • Replacing

    implementation 'androidx.room:room-rxjava2:2.0.0'
    

    with

     implementation 'androidx.room:room-rxjava2:2.2.2'
    

    fixes it.