【发布时间】:2014-12-02 09:54:28
【问题描述】:
我正在尝试将 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
【问题讨论】:
-
请发布您的 build.gradle 文件。
-
请分享您正在使用的 Gradle 的 Kotlin 编译器、运行时和 Kotlin 插件的确切版本。另外,请告诉我们您是如何运行测试的。任何其他配置细节也将不胜感激。
-
更新了我的问题,包括 gradle 脚本、kotlin、java 和 gradle 版本。
-
尝试将
compileKotlin {kotlinOptions.annotations = file('annotations')}添加到您的build.gradle -
@vzamanillo 没有任何区别,我仍然收到警告和错误。