(Scala + RxJava3) Flowables.orderedMerge NoSuchMethodError



在菊石中,我执行以下代码... 尝试对两个可流动对象进行有序合并,

import $ivy.{
`io.circe::circe-generic:0.13.0`                    ,
`io.circe::circe-parser:0.13.0`                     ,
`io.circe::circe-optics:0.13.0`                     ,
`com.softwaremill.sttp::core:1.7.2`                 ,
`org.scalaz::scalaz-core:7.2.27`                    ,
`com.lihaoyi::requests:0.2.0`                       ,
`io.get-coursier::coursier-core:2.0.0-RC4`          ,
`io.lemonlabs::scala-uri:1.4.10`                    ,
`net.liftweb::lift-json:3.4.0`                      ,
`io.reactivex.rxjava3:rxjava:3.0.3`                 ,
`com.github.akarnokd:rxjava3-extensions:3.0.0-RC7`
}
import io.lemonlabs.uri._
implicit val formats = net.liftweb.json.DefaultFormats
import net.liftweb.json.JsonAST._
import net.liftweb.json.Extraction._
import net.liftweb.json._
import io.reactivex.rxjava3.core._
import io.reactivex.rxjava3.functions._
import net.liftweb.json.JsonDSL._
import collection.JavaConverters._
import io.reactivex.rxjava3.subjects._
import scala.collection.mutable.HashMap
import io.reactivex.rxjava3.internal.functions.Functions
Flowables.orderedMerge(
List(
Flowable.just(3, 5),
Flowable.just(2, 4, 6)
).toIterable.asJava, 
Functions.naturalComparator[Int]()
).subscribe(i=>println(i))

但是打印 2 后,它会抛出异常:

java.lang.NoSuchMethodError: io.reactivex.rxjava3.internal.subscribers.InnerQueuedSubscriber.requestOne()V
hu.akarnokd.rxjava3.operators.BasicMergeSubscription.drain(BasicMergeSubscription.java:268)
hu.akarnokd.rxjava3.operators.BasicMergeSubscription.innerComplete(BasicMergeSubscription.java:161)
io.reactivex.rxjava3.internal.subscribers.InnerQueuedSubscriber.onSubscribe(InnerQueuedSubscriber.java:69)
io.reactivex.rxjava3.internal.operators.flowable.FlowableFromArray.subscribeActual(FlowableFromArray.java:39)
io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15750)
io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15696)
hu.akarnokd.rxjava3.operators.BasicMergeSubscription.subscribe(BasicMergeSubscription.java:79)
hu.akarnokd.rxjava3.operators.FlowableOrderedMerge.subscribeActual(FlowableOrderedMerge.java:94)
io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15750)
io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15686)
io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15618)
ammonite.$sess.cmd63$.<clinit>(cmd63.sc:1)

谁能帮我?我对此一无所知...

奇怪的是,它可以打印第一个订购的项目,但不能打印下一个项目......

rxjava3-extensions:3.0.0-RC7

rxjava:3.0.3不兼容。候选版本不提供严格的兼容性保证。

升级到rxjava3-extensions:3.0.0或更高版本。

为了将来参考NoSuchMethodError几乎总是指示不兼容的库。异常消息中的未找到方法和堆栈跟踪顶部的方法很好地指示了涉及哪些库。

该库的原始开发人员告诉我使用发布版本库,而不是使用 RC7。然后现在一切都很顺利。

谢谢大家!

om.subscribe(i=>println(i)) 
2
3
4
5
6
res22: io.reactivex.rxjava3.disposables.Disposable = CANCELLED

相关内容

  • 没有找到相关文章

最新更新