我正在尝试将Kotlin与现有的Java应用程序集成。因此,为了测试它,我创建了一个简单的kotlin文件和一个单元测试(在java中),它将做一些简单的事情。单元测试的目的是确保所有配置都正确,实际上我可以从java调用kotlin类。
这是我有点卡住的地方,在使用gradle执行构建时,我收到以下错误:
[ERROR] [system.err] Sample.class: warning: Cannot find annotation method 'name()' in type 'JetValueParameter'
[ERROR] [system.err] SampleTest.java:19: error: cannot access KObject
[ERROR] [system.err] sample.setStatusCode(Sample.Status.OK);
[ERROR] [system.err] ^
[ERROR] [system.err] class file for kotlin.jvm.internal.KObject not found
[ERROR] [system.err] 1 error
[ERROR] [system.err] 24 warnings
我在类路径上有kotlin运行时,我还在kotlin-jdk-annotations中添加了一个好的措施。我还在gradle中配置了kotlin插件。
我正撞在一堵砖墙上,因为我喜欢kotlin作为java的替代品,这是一种耻辱。但是这个问题可能会破坏我的计划。
任何帮助都将非常感谢!!!
更新
Gradle构建脚本:
apply plugin: 'java'
apply plugin: 'kotlin'
sourceCompatibility = 1.7
version = '1.0'
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compile "org.jetbrains.kotlin:kotlin-stdlib:0.9.976"
}
buildscript {
ext.kotlin_version = '0.9.976'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:0.9.976"
classpath 'org.jetbrains.kotlin:kotlin-stdlib:0.9.976'
}
}
Java版本: 1.7.x Kotlin版本: 0.9.976 Gradle版本: 1.6
答案 0 :(得分:2)
我想出了这个问题,因为我们正在使用一个复杂的gradle设置(它正在加载其他5个脚本;(),gradle脚本没有将kotlin运行时添加到路径中。一旦我修复它似乎工作。