Kotlin 将RxJava与api、room、改装一起使用时发出致命信号11 SIGSEGV(RxCachedTreadS)

Kotlin 将RxJava与api、room、改装一起使用时发出致命信号11 SIGSEGV(RxCachedTreadS),kotlin,retrofit2,android-room,rx-java2,Kotlin,Retrofit2,Android Room,Rx Java2,在我的应用程序中,我使用RxJava、一些API、改装和Room 我的应用程序在启动进程后间歇性崩溃,有时它会工作10~15分钟。 但它总是强迫完成显示这个错误 A/libc:tid 30800中的致命信号11(SIGSEGV),代码1,故障地址0x20(RX计算) 我找不到引起此错误的代码 MyActivity.kt override fun onCreate(savedInstanceState: Bundle?) { GlobalScope.launch(Dispatch

在我的应用程序中,我使用RxJava、一些API、改装和Room

我的应用程序在启动进程后间歇性崩溃,有时它会工作10~15分钟。 但它总是强迫完成显示这个错误

A/libc:tid 30800中的致命信号11(SIGSEGV),代码1,故障地址0x20(RX计算)

我找不到引起此错误的代码

MyActivity.kt

override fun onCreate(savedInstanceState: Bundle?) {
 
       GlobalScope.launch(Dispatchers.IO) {
            while (true) {
                viewModel.gatherChangeAfterLastLogin()
                delay(10000L)
            }
        }
}
class viewModel(application: Application) : AndroidViewModel(application) {

    fun gatherChangeAfterLastLogin() {
        var a = Observable.fromIterable(someObject...)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe { }

        var b = Observable.fromIterable(someObject...)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe { }

        var c = Observable.fromIterable(someObject...)
                .flatMap {
                    var one = Observable.fromIterable(someObject...).onErrorReturn{ Collections.emptyList() }
                    var two = Observable.fromIterable(someObject...).onErrorReturn{ Collections.emptyList() }
                    var three = Observable.fromIterable(someObject...).onErrorReturn{ Collections.emptyList() }
                    Observable.mergeDelayError(one, two, three)
                }
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe({

                }, {

                }, {

                })
    }
}
viewModel.kt

override fun onCreate(savedInstanceState: Bundle?) {
 
       GlobalScope.launch(Dispatchers.IO) {
            while (true) {
                viewModel.gatherChangeAfterLastLogin()
                delay(10000L)
            }
        }
}
class viewModel(application: Application) : AndroidViewModel(application) {

    fun gatherChangeAfterLastLogin() {
        var a = Observable.fromIterable(someObject...)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe { }

        var b = Observable.fromIterable(someObject...)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe { }

        var c = Observable.fromIterable(someObject...)
                .flatMap {
                    var one = Observable.fromIterable(someObject...).onErrorReturn{ Collections.emptyList() }
                    var two = Observable.fromIterable(someObject...).onErrorReturn{ Collections.emptyList() }
                    var three = Observable.fromIterable(someObject...).onErrorReturn{ Collections.emptyList() }
                    Observable.mergeDelayError(one, two, three)
                }
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe({

                }, {

                }, {

                })
    }
}
build.gradle

implementation "io.reactivex.rxjava2:rxkotlin:2.2.0"
implementation "io.reactivex.rxjava2:rxandroid:2.1.1"
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.2.0' 
implementation 'com.squareup.retrofit2:converter-scalars:2.1.0' 
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:retrofit-converters:2.4.0' 
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
在我看来,var c Observable是可疑的,因此即使我对其进行注释并运行,结果也是一样的

而且,如果我将Schedulers.io()更改为Schedulers.computation(), 错误详细信息如下所示

A/libc:tid 30800中的致命信号11(SIGSEGV),代码1,故障地址0x20(RX计算)


我不知道问题发生在哪里,因为错误是这样出现的

这不是RxJava问题,因为RxJava在Android运行时运行,而这个问题是由于一些libc问题(SIGSEGV)。很可能是Android运行时(Android版本)的问题,或者你的设备上有一个奇怪的Android图像。你能发布墓碑()的内容吗?这不是RxJava的问题,因为RxJava运行在Android运行时上,而这个问题是因为一些libc问题(SIGSEGV)。很可能是Android运行时(Android版本)的问题,或者你的设备上有一个奇怪的Android图像。你能把墓碑()的内容贴出来吗?