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来解决问题,但是我不喜欢这个解决方案。
有人可以建议一个更好的解决方案? 谢谢!
- Android从Gradle和Kotlin的各种错误
- 在org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated找不到属性’run’
- 升级到android gradle插件3.0.0+后,项目不会生成
- Android Studio gradle花费太长的时间来构建
- Android gradle构建在':app:mergeDebugResources'上突然失败,没有错误消息
- Gradle安装错误:Javadoc
- 如何从命令行运行Kotlin的spark java
- Gradle 3.0.0-alpha1与kotlin-android插件1.1.2-3不兼容?
- Gradle:运行某个类的任务