Intellij idea 异常原因:java.lang.ClassNotFoundException:org.reactivestreams.Publisher
在我使用IntelliJ IDEA 2017.1.2(Build#IC-171.4249.39)中的RxJava和Kotlin开发的基于JavaFX Gradle的应用程序中,我遇到了一个例外: 线程“JavaFX应用程序线程”java.lang.NoClassDefFoundError中出现异常:org/reactivestreams/Publisher 每次都是这样的代码Intellij idea 异常原因:java.lang.ClassNotFoundException:org.reactivestreams.Publisher,intellij-idea,gradle,kotlin,rx-java2,rx-kotlin,Intellij Idea,Gradle,Kotlin,Rx Java2,Rx Kotlin,在我使用IntelliJ IDEA 2017.1.2(Build#IC-171.4249.39)中的RxJava和Kotlin开发的基于JavaFX Gradle的应用程序中,我遇到了一个例外: 线程“JavaFX应用程序线程”java.lang.NoClassDefFoundError中出现异常:org/reactivestreams/Publisher 每次都是这样的代码 return Completable.complete() 被执行。根据一个类似问题的建议,我尝试将include反应
return Completable.complete()
被执行。根据一个类似问题的建议,我尝试将include反应流添加到我的build.gradle
脚本的dependencies
块中
dependencies {
compile 'org.jetbrains.kotlin:kotlin-stdlib:1.1.2'
compile 'org.reactivestreams:reactive-streams:1.0.0'
compile 'io.reactivex.rxjava2:rxkotlin:2.0.0'
}
但问题依然存在。依赖关系树如下所示:
compile - Dependencies for source set 'main' (deprecated, use 'implementation ' instead).
+--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2
| \--- org.jetbrains:annotations:13.0
+--- org.reactivestreams:reactive-streams:1.0.0
\--- io.reactivex.rxjava2:rxkotlin:2.0.0
+--- io.reactivex.rxjava2:rxjava:2.0.7
| \--- org.reactivestreams:reactive-streams:1.0.0
\--- org.jetbrains.kotlin:kotlin-stdlib:1.1.0 -> 1.1.2 (*)
compileClasspath - Compile classpath for source set 'main'.
+--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2
| \--- org.jetbrains:annotations:13.0
+--- org.reactivestreams:reactive-streams:1.0.0
\--- io.reactivex.rxjava2:rxkotlin:2.0.0
+--- io.reactivex.rxjava2:rxjava:2.0.7
| \--- org.reactivestreams:reactive-streams:1.0.0
\--- org.jetbrains.kotlin:kotlin-stdlib:1.1.0 -> 1.1.2 (*)
+--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2
| \--- org.jetbrains:annotations:13.0
+--- org.reactivestreams:reactive-streams:1.0.0
\--- io.reactivex.rxjava2:rxkotlin:2.0.0
+--- io.reactivex.rxjava2:rxjava:2.0.7
| \--- org.reactivestreams:reactive-streams:1.0.0
\--- org.jetbrains.kotlin:kotlin-stdlib:1.1.0 -> 1.1.2 (*)
\--- org.jetbrains.kotlin:kotlin-annotation-processing:1.1.2
\--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2
\--- org.jetbrains:annotations:13.0
kaptTest
\--- org.jetbrains.kotlin:kotlin-annotation-processing:1.1.2
\--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2
\--- org.jetbrains:annotations:13.0
runtime - Runtime dependencies for source set 'main' (deprecated, use 'runtimeOnly ' instead).
+--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2
| \--- org.jetbrains:annotations:13.0
+--- org.reactivestreams:reactive-streams:1.0.0
\--- io.reactivex.rxjava2:rxkotlin:2.0.0
+--- io.reactivex.rxjava2:rxjava:2.0.7
| \--- org.reactivestreams:reactive-streams:1.0.0
\--- org.jetbrains.kotlin:kotlin-stdlib:1.1.0 -> 1.1.2 (*)
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2
| \--- org.jetbrains:annotations:13.0
+--- org.reactivestreams:reactive-streams:1.0.0
\--- io.reactivex.rxjava2:rxkotlin:2.0.0
+--- io.reactivex.rxjava2:rxjava:2.0.7
| \--- org.reactivestreams:reactive-streams:1.0.0
\--- org.jetbrains.kotlin:kotlin-stdlib:1.1.0 -> 1.1.2 (*)
testCompile - Dependencies for source set 'test' (deprecated, use 'testImplementation ' instead).
+--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2
| \--- org.jetbrains:annotations:13.0
+--- org.reactivestreams:reactive-streams:1.0.0
\--- io.reactivex.rxjava2:rxkotlin:2.0.0
+--- io.reactivex.rxjava2:rxjava:2.0.7
| \--- org.reactivestreams:reactive-streams:1.0.0
\--- org.jetbrains.kotlin:kotlin-stdlib:1.1.0 -> 1.1.2 (*)
testCompileClasspath - Compile classpath for source set 'test'.
+--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2
| \--- org.jetbrains:annotations:13.0
+--- org.reactivestreams:reactive-streams:1.0.0
\--- io.reactivex.rxjava2:rxkotlin:2.0.0
+--- io.reactivex.rxjava2:rxjava:2.0.7
| \--- org.reactivestreams:reactive-streams:1.0.0
\--- org.jetbrains.kotlin:kotlin-stdlib:1.1.0 -> 1.1.2 (*)
testRuntime - Runtime dependencies for source set 'test' (deprecated, use 'testRuntimeOnly ' instead).
+--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2
| \--- org.jetbrains:annotations:13.0
+--- org.reactivestreams:reactive-streams:1.0.0
\--- io.reactivex.rxjava2:rxkotlin:2.0.0
+--- io.reactivex.rxjava2:rxjava:2.0.7
| \--- org.reactivestreams:reactive-streams:1.0.0
\--- org.jetbrains.kotlin:kotlin-stdlib:1.1.0 -> 1.1.2 (*)
testRuntimeClasspath - Runtime classpath of source set 'test'.
+--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2
| \--- org.jetbrains:annotations:13.0
+--- org.reactivestreams:reactive-streams:1.0.0
\--- io.reactivex.rxjava2:rxkotlin:2.0.0
+--- io.reactivex.rxjava2:rxjava:2.0.7
| \--- org.reactivestreams:reactive-streams:1.0.0
\--- org.jetbrains.kotlin:kotlin-stdlib:1.1.0 -> 1.1.2 (*)
如您所见,org.reactivestreams:reactivestreams存在于每个环境中
现在,我已经通过手动添加对的依赖关系解决了这个问题,但我根本不喜欢这个解决方案
谁能给我一个更好的建议?谢谢 为什么要使用rxjava2 kotlin和org.reactivestreams:reactivestreams:1.0.0?io.reactivex.rxjava2:rxjava:2.x.y。。。我认为如果需要使用org.reactivestreams:reactivestreams:1.0.0或传递到v2版本,就必须使用io.reactivex:rxkotlin:1.x.y。