java - 将 Android Room 数据库与 RXJava2 一起使用时找不到符号类 EmptyResultSetException

标签 java android rx-java2 android-room dao

我正在尝试将 RXJava2Room 数据库 一起使用。我使用 Single Observable 来获取我的对象的列表。但每次我都会收到这个错误

cannot find symbol class EmptyResultSetException

我正在使用本教程 ANDROID ROOM PERSISTENT AND RXJAVA2

我之前在没有RXJava的情况下将它与AsyncTask一起使用,并且它有效,所以我想将它与RXJava一起使用

这是我的build.gradle

apply plugin: 'com.android.application'

  android {
compileSdkVersion 28
defaultConfig {
    applicationId "apit.net.sa.simpleusingroom"
    minSdkVersion 16
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
}

    dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'




implementation 'com.android.support:support-v13:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.jakewharton:butterknife:8.5.1'
    //ROOM database
implementation 'android.arch.persistence.room:runtime:1.0.0'
annotationProcessor 'android.arch.persistence.room:compiler:1.0.0'

//RXJava2
implementation 'io.reactivex.rxjava2:rxjava:2.1.9'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'

//RXjava with room
implementation 'android.arch.persistence.room:rxjava2:1.0.0-alpha1'

annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
 }

道类

 @Query("SELECT * FROM UserEntity")
Single<List<UserEntity>> getUsersSingle();

我的 Activity

DatabaseSingInstance.getInstance(this)
            .getOurDatabase()
            .userDAO()
            .getUsersSingle()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new DisposableSingleObserver<List<UserEntity>>() {


                @Override
                public void onSuccess(final List<UserEntity> userEntities) {
                    adapter = new UserAdapter(userEntities, MainActivity.this, new UserAdapter.OnLongClickListner() {
                        @Override
                        public void onClick(int position) {
                            showPopupWindow(userEntities,position);
                        }
                    });
                    myRec.setAdapter(adapter);
                }

                @Override
                public void onError(Throwable e) {
                    Log.e("error"," "+e.getMessage());
                }


            });

最佳答案

我按照这个Answer解决了问题

我刚刚将 room_version 更改为 1.1.0 。 顺便说一句,我正在等待任何人能够解释此错误或只是解释它发生的原因。

关于java - 将 Android Room 数据库与 RXJava2 一起使用时找不到符号类 EmptyResultSetException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58954911/

相关文章:

java - xml使用sax解析器从子标签解析数据

java - 使用 Java IText 设置现有 PDF 文档的新页面大小

android - Material ShowcaseView库中 "Got It"按钮如何使用?

android - 在单元测试中,如何在断言结果之前等待 RxJava2 Observable 完成

java - 寻找 Rxjava 运算符将源合并到一个流中

java - 在哪些情况下,Java 引用相等性可能不同于 equals() 类型对象的相等性,该类型的对象没有覆盖 equals()?

java - Android:在纯 java 包中使用 JSON 库的问题

android - 使用 Google 文档在 WebView 中显示 PDF 不再有效

java - Firebase实时数据库: How to stop offline write?(最佳方法)

android - 使用 Kotlin 的 RxJava 中的花括号和普通括号有什么区别