Недавно я добавил плагин Kotlin в сборку своего Android-приложения, и теперь я хочу протестировать класс Kotlin в InstrumentationTestCase.
IntelliJ / Android Studio видит класс в редакторе, и кажется, что класс компилируется при запуске приложения, но когда я запускаю gradlew assembleTest
он терпит неудачу с «не может найти символ [имя класса]».
В моем build.gradle я добавил папку kotlin как srcDir
sourceSets { main { manifest.srcFile 'src/main/AndroidManifest.xml' java.srcDirs += 'src/main/kotlin' } }
Любой совет?
Изменить : проблема заключалась в конфликте между плагином Kotlin и Retrolambda и теперь разрешена.
Я из проекта Котлин. Не могли бы вы ответить на несколько вопросов, чтобы помочь мне воспроизвести вашу проблему? Вы запускаете gradlew assembleTest
из IDE или из командной строки? У вас есть 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') }
Если у вас есть варианты сборки, вам необходимо настроить имена папок.