Android Unit Test of Kotlin class falla con "no se puede encontrar la class de símbolo …"

Recientemente agregué el complemento de Kotlin a la compilation de mi aplicación de Android y ahora quiero probar una class de Kotlin en un InstrumentationTestCase.

IntelliJ / Android Studio ve la class en el editor y parece que la class está comstackda al iniciar la aplicación, pero cuando lance gradlew assembleTest falla con "no se puede encontrar el símbolo [nombre de la class]".

En mi build.gradle agregué la carpeta kotlin como srcDir

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

¿Algún consejo?

Editar : El problema fue un conflicto entre Kotlin y el complemento Retrolambda y ahora está resuelto.

Soy del Proyecto Kotlin. ¿Podría responder algunas preguntas para ayudarme a reproducir su problema? Ejecuta gradlew assembleTest de IDE o de la command-line? ¿Tienes kotlin-stdlib en dependencies?

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

¿Podría proporcionarnos su proyecto? He creado un problema en su rastreador, por lo que sería genial ver sus respuestas aquí http://youtrack.jetbrains.com/issue/KT-6015

Si bien el problema se está investigando en la otra respuesta, aquí hay una solución temporal. Agregue esto a su 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') } 

Si tiene variantes de compilation, deberá ajustar los nombres de las carpetas.

  • No se puede recibir un post de grupo usando smack
  • error en la anotación de Kotlin?
  • ¿Cómo explicar este extraño comportamiento al establecer márgenes programáticamente a una vista dentro de RelativeLayout?
  • ¿Hay alguna manera de comstackr una class de Kotlin a JavaScript usando Gradle?
  • Cómo verificar el método en cuando en kotlin
  • Kotlin anula el set de miembros y obtén
  • Crear file ZIP en Kotlin
  • Kotlin: Convertir list grande a sublist de tamaño de partición establecido
  • ¿Cómo ejecutar las testings de Spek desde la command-line?
  • Temporizador RxJava2 y combinar
  • ¿Los nativos de kotlin tienen destructores?