Gradle报错:KotlinReflectionNotSupportedError: Kotlin reflection implementation is not found at runtime. Make sure you have kotlin-reflect.jar in the classpath

选中文字可对指定文章内容进行评论啦,绿色背景文字可以点击查看评论额。

基于Gradle和Kotlin开发的项目,gradle运行项目是报错:

Exception in thread "main" kotlin.jvm.KotlinReflectionNotSupportedError: Kotlin reflection implementation is not found at runtime. Make sure you have kotlin-reflect.jar in the classpath
    at kotlin.jvm.internal.ClassReference.error(ClassReference.kt:86)
    at kotlin.jvm.internal.ClassReference.getQualifiedName(ClassReference.kt:26)
    at WorkerKt.main(Worker.kt:62)

这个原因是kotlin-reflect.jar没有添加在classpath里。

在项目的build.gradle添加如下:

Gradle 3.4之前的版:

compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"

Gradle 3.4+

implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"

版权声明:著作权归作者所有。

相关推荐

Kotlin:命名规范

命名风格默认和Java的命名风格一样。使用驼峰命名风格类型以大写开头方法和属性以小写开头使用4个空格缩进公开的函数应该写文档 冒号分隔类型和子类型的冒号前有一个空格分割实例变量名与类型的冒号前没有空格示例:interface Foo<out T : Any> : Bar {   &nbs

Gradle配置implementation、api与compile的区别

自Gradle 3.4开始,compile被废弃,取而代之的是implementation和api两个配置项。掌握这三者的区别实际上就是要清楚什么情况使用implementation替换compile,什么情况下使用api替换compile。implementation替换compile使用implementation配置依赖,对Gradle来说:编译时:不允许外部模块调用此依赖包,除非

Kotlin:基本类型 - Char与Boolean

字符类型Kotlin使用Char表示字符,与Java不同的是,它并不能直接和数字做类型转换。字符表示它们使用单引号''把字符括起来特殊字符:特殊字符串使用反斜杠开头,如\t, \b, \n, \r, \', \", \\ and \$其他一些字符可以使用Unicode编码,如'\uFF00'数字转换Kotlin的字符不能直接和数字做类型转换,但我们可以它们的unicode码的相对差来做数

Kotlin集合扩展函数 - 转换

Kotlin 集合类型提供了很多用于转换的扩展函数。这里需要指出示例里的intList为val intList: List<I­nt> = listOf(1, 2, 3) associate关联函数:使用转换函数把Array或Iterable转换为Map:数组fun <T, K, V> any_array

有用的Kotlin版Rx代码片段1

只是几个随机的,可能有用的Rx片段(kotlin版)。计时器是的,只是一个简单的计时器,运行5秒。Observable.interval(1, TimeUnit.SECONDS, Schedulers.newThread())         .take(5)    &

Java使用Gradle依赖配置compile,implementation和api的区别

这个主要看Java项目所使用的Gradle的版本。Gradle3.4新增了Java-library插件,java-library插件使用了新的依赖配置implementation和api。旧的依赖配置compile被废弃。Gradle3.4之前的版本java插件apply plugin: 'java' 添加依赖dependencies { compile '