exception:java.lang.ClassNotFoundException:org.reactivestreams.Publisher
在IntelliJ IDEA 2017.1.2(Build#IC-171.4249.39)中使用RxJava和Kotlin开发的基于JavaFX Gradle的应用程序中,出现exception:
线程“JavaFX Application Thread”中的exceptionjava.lang.NoClassDefFoundError:org / reactivestreams / Publisher
每次这样的代码
return Completable.complete()
被执行。 在类似问题的建议之后为什么我得到NoClassDefFoundError:org / reactivestreams / Publisher ,我试图添加包括反应流到我的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:反应流是存在于每个环境。
现在,我已经设法通过手动添加reactive-streams-1.0.0.jar来解决问题,但是我不喜欢这个解决方案。
有人可以建议一个更好的解决方案? 谢谢!
- 包含gradle脚本kotlin文件的IntelliJ自动完成
- jacoco安卓gradle插件android kotlin项目后android android gradle插件到版本3(测试版)
- 为什么IntelliJ Idea不能识别我的Spek测试?
- 无法使用Kotlin中的特定类型参数编译扩展函数
- Android工作室kotlin插件错误
- 如何添加Gradle Kotlin-dsl的新配置
- Android,Gradle:为什么(第二次)“gradlew build –build-cache”不能马上完成?
- Kotlin脚本为Gradle配置 – 传递参数不使用扩展名
- 我怎样才能用Kotlin DSL为Gradle配置Kotlin协程?