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.

  • error en la entrega de datos en el data binding de Android
  • ¿Cómo get el estado de entrega del post usando smack?
  • ¿Cómo usar Kotlin async y esperar por factoriales?
  • Cómo establecer el ancho del borde FloatingActionButton con Anko
  • ¿Tiene Kotlin un equivalente a opciones opcionales de envoltura implícita en Swift?
  • Enlace de datos de Android: @BindingAdapter en Kotlin no reconoce lambdas
  • Android Retrofit + SimpleXmlConverter con entidad vacía
  • Android ViewPager: cómo forzar la eliminación de todos los elementos?
  • Función de tipo reificado de Kotlin como extensión de function. ¿Se puede invocar desde Java?
  • En objects receptores Kotlin y extensiones
  • Cómo consultar Realm en el background Subprocess usando RxJava2