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集合扩展函数 - 转换

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

Kotlin:基本类型 - Char与Boolean

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

Gradle配置implementation、api与compile的区别

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