我最近在我的Android应用程序的构建中添加了Kotlin插件,现在我想在InstrumentationTestCase中测试Kotlin类。
IntelliJ / Android Studio在编辑器中看到该类,似乎在启动应用程序时编译了类,但是当我启动gradlew assembleTest
时,它失败并且#34;无法找到符号[类的名称]&# 34。
在我的build.gradle中,我将kotlin文件夹添加为srcDir
sourceSets {
main {
manifest.srcFile 'src/main/AndroidManifest.xml'
java.srcDirs += 'src/main/kotlin'
}
}
有什么建议吗?
编辑:问题是Kotlin和Retrolambda插件之间存在冲突,现在已经解决了。
答案 0 :(得分:2)
我来自Project Kotlin。你能回答几个问题来帮助我重现你的问题吗?
您是从IDE还是从命令行运行gradlew assembleTest
?你有依赖的kotlin-stdlib吗?
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
你能提供给我们你的项目吗?我在您的智能设备中创建了一个问题,因此在此处查看您的答案会很棒http://youtrack.jetbrains.com/issue/KT-6015
答案 1 :(得分:0)
虽然在另一个答案中正在调查此问题,但这是一个临时的解决方法。将其添加到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')
}
如果您有构建变体,则需要调整文件夹的名称。