【发布时间】:2018-07-14 01:38:28
【问题描述】:
我有一个使用 intellij 为 kotlin 1.2.10 配置的最简单的 gradle 项目。这是我的 build.gradle 文件:
buildscript {
ext.kotlin_version = '1.2.10'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
group 'com.ali'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'kotlin'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
testCompile group: 'junit', name: 'junit', version: '4.12'
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
我有一个简单的 java 接口:
public interface MyMath {
static int myAbs(int input) {
return Math.abs(input);
}
}
当我导入此接口并尝试调用 myAbs 方法时,它会失败并出现以下错误:
Error:(6, 12) Kotlin: Calls to static methods in Java interfaces are prohibited in JVM target 1.6. Recompile with '-jvm-target 1.8'
我创建了一个 intellij kotlin 应用程序,它运行正常。这是新 Kotlin gradle 插件中的错误吗?
【问题讨论】:
-
你有 JDK 8 吗?
-
是的,这个问题只发生在我在 intellij 中构建项目时。终端中的 gradle 工作正常!
-
您使用的 IDE 插件版本是什么?我无法使用 1.2.21 插件重现错误。如果更新的 Gradle 和 IDE 插件版本也发生这种情况,您可以在 kotl.in/issue 提出问题并描述导致错误的确切步骤。
标签: gradle intellij-idea kotlin