尝试使用Observable时获取Fata信号11

我正在尝试第一次尝试Kotlin,RxJava 2和新的android架构组件。 我试图从单独的线程上的房间执行删除方法,我得到ERROR: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 12673 (RxCachedThreadS)执行该方法时, ERROR: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 12673 (RxCachedThreadS) ,并强制关闭。 我正在尝试这两个选项:

1。

 Single.fromCallable { deviceViewModel.delete(device.phone) } .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe() 

2。

 Observable.just(Unit) .subscribeOn(Schedulers.io()) .map { deviceViewModel.delete(device.phone) } .subscribe() 

这是我的DeviceViewModel.kt(使用AndroidViewModel)

 class DeviceViewModel constructor(application: Application) : AndroidViewModel(application) { @Inject lateinit var db: AppDatabase init { (application as KaiApplication).appComponent.inject(this) } fun count() = db.deviceModel().count(); fun getDevices() = db.deviceModel().devices(); fun getDevice(phone: String) = db.deviceModel().device(phone) fun create(device: Device): Device { db.deviceModel().createOrUpdate(device).let { return device } } fun createTestDevice(name: String, phone: String) { db.deviceModel().createTestDevice(name, phone) } fun delete(device: Device): Device { db.deviceModel().delete(device).let { return device } } fun delete(devicePhone: String) { db.deviceModel().delete(devicePhone) } 

和我的DeviceDao.kt

 @Dao abstract class DeviceDao { @Query("SELECT COUNT(*) FROM device") abstract fun count(): Int @Query("SELECT * FROM device") abstract fun devices(): Flowable<List<Device>> @Query("SELECT * FROM device WHERE phone = :p0") abstract fun device(phone: String): Device? fun createOrUpdate(device: Device) { Timber.d("Device to create $device") insertOrUpdate(device) } fun createTestDevice(name: String, phone: String) { val device: Device = Device() device.phone = phone device.name = name device.password = "12345" Timber.d("Device to create $device") insertOrUpdate(device) } @Insert(onConflict = OnConflictStrategy.REPLACE) abstract fun insertOrUpdate(vararg devices: Device) @Query("DELETE FROM device WHERE phone = :p0") abstract fun delete(phone: String) @Delete abstract fun delete(device: Device) 

我试图解决这个问题,但没有成功。 任何帮助都将在手中。 谢谢!