Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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>>() {
like image 627
Ephraim Schmitt Avatar asked Apr 11 '19 01:04

Ephraim Schmitt


Video Answer


2 Answers

Replacing

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

with

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

fixes it.

like image 90
Vairavan Avatar answered Oct 27 '22 11:10

Vairavan


I also faced the same error but the problem in my case was that I was importing room libraries from AndroidX and the room-rxjava from the older appcompat type library. 🤦‍♂️

like image 23
VarunBarad Avatar answered Oct 27 '22 11:10

VarunBarad