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') }
如果您有构建变体,则需要调整文件夹的名称。