Kotlin类的Android单元测试失败,“无法找到符号类...”

时间:2014-10-13 12:49:38

标签: android gradle android-testing kotlin

我最近在我的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插件之间存在冲突,现在已经解决了。

2 个答案:

答案 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')
}

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