Kotlin类的Android单元测试失败,出现“找不到符号类…”

我最近添加了Kotlin插件到我的Android应用程序的构建,现在我想在InstrumentationTestCase中测试一个Kotlin类。

IntelliJ / Android Studio在编辑器中看到类,看起来类是在启动应用程序时编译的,但是当我启动gradlew assembleTest它以“无法找到符号[类的名称]”失败。

在我的build.gradle中,我添加了kotlin文件夹作为srcDir

 sourceSets { main { manifest.srcFile 'src/main/AndroidManifest.xml' java.srcDirs += 'src/main/kotlin' } } 

任何建议?

编辑 :这个问题是Kotlin和Retrolambda插件之间的冲突,现在已经解决了。

我来自Kotlin项目。 你能回答几个问题来帮助我重现你的问题吗? 你是从IDE还是从命令行运行gradlew assembleTest ? 你有依赖关系的kotlin-stdlib吗?

 dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } 

你能为我们提供你的项目吗? 我在跟踪器中创建了一个问题,所以很高兴在这里看到你的答案http://youtrack.jetbrains.com/issue/KT-6015

在另一个答案中正在调查问题的同时,这是一个临时的解决方法。 添加到你的build.gradle:

 afterEvaluate { project -> project.tasks.findAll { it.name.startsWith('compile') && it.name.endsWith('DebugTestJava') }.each { Task task -> task.dependsOn copyKotlinToTest } } task copyKotlinToTest(type: Copy) { from new File(buildDir, 'tmp/kotlin-classes/debug') into new File(buildDir, 'tmp/kotlin-classes/debugTest') } 

如果您有构建变体,则需要调整文件夹的名称。