Error ClassNotFoundException para el proyecto Kotlin (no Android) en Android Studio

Intenté crear un proyecto Kotlin normal (no Android, solo proyecto de escritorio / command-line) con Android Studio 2.3.3.

Seguí los pasos que se build.gradle aquí pero con diferente contenido build.gradle cuyo contenido he compartido aquí .

En realidad, ese contenido de build.gradle lo copié del file build.gradle después de generar un nuevo proyecto con IntelliJ Community Edition (2017.2).

Luego creo una configuration para poder ejecutarla en el escritorio con la configuration adecuada, como Main Class, Working directory y Use classpath of module. Puedes ver en la image a continuación.

enter image description here

y siguiente es la estructura de file del proyecto que tengo

enter image description here

Luego sincronizo el proyecto, tiene éxito. Pero aparece un error cuando trato de ejecutar el proyecto. Tuve el siguiente error.

  "/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java" -Didea.launcher.port=7534 "-Didea.launcher.bin.path=/Applications/Android Studio.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/charsets.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/localedata.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/sunec.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/jce.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/jsse.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/management-agent.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/resources.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/rt.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/lib/dt.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/lib/jconsole.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/lib/sa-jdi.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/lib/tools.jar:/Users/haxpor/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar:/Users/haxpor/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.1.4-2/272a21c30432c943d618008fbbd34762eb0d6c8a/kotlin-stdlib-jre7-1.1.4-2.jar:/Users/haxpor/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.1.4-2/fec983b2608a8a91a1b87dba18d247d692cf6b51/kotlin-stdlib-1.1.4-2.jar:/Users/haxpor/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre8/1.1.4-2/168cc3f45c307edda6c867dd0635a7d451257551/kotlin-stdlib-jre8-1.1.4-2.jar:/Applications/Android Studio.app/Contents/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain io.wasin.testjavaapp.Main Exception in thread "main" java.lang.ClassNotFoundException: io.wasin.testjavaapp.Main at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:123) Process finished with exit code 1 

Vi el parámetro classpath como se proporciona en la parte superior /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java no tiene un directory relacionado a mi proyecto. No sé cómo agregar el directory classpath a través de gradle a pesar de que ya lo configuré en configuraciones.

¿Como puedó resolver esté problema?

Actualización :

El siguiente es mi código Main.kt Es solo para fines de testing. Entonces simplemente imprimiendo algo.

 package io.wasin.testjavaapp object Main { @JvmStatic fun main(arg: Array<String>) { println("Hello world") } } 

También actualicé build.gradle para la versión de Kotlin para que coincida con la versión del complemento de Kotlin en Android Studio. Ahora es ext.kotlin_version = '1.1.4-2' . Aunque todavía no resuelve el problema.

Actualización 2

Comprobé dentro del directory de build en el mismo nivel del directory de src . No hay files .class o intermediates generados / construidos allí, solo kotlin-build/caches/version.txt y eso es todo. No hay otros files. Entonces, ¿el problema puede deberse a que los files fuente no se comstackn en absoluto?

Actualización 3

Traté de crear un nuevo module para ver si es la causa raíz o no. También creó la carpeta de assets solo para actuar como Directorio de trabajo, reorderó la carpeta de origen nuevamente para que sea la siguiente.

enter image description here

Ahora tenemos 2 modules.

  1. testJavaApp – root one
  2. desktop : consta de Main.kt y se utiliza como ejecutable de escritorio

testJavaApp tiene el siguiente código para build.gradle

 group 'io.wasin' version '1.0-SNAPSHOT' // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.1.4-2' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } 

también el module de desktop tiene el siguiente código para build.gradle

 apply plugin: 'kotlin' sourceSets.main.java.srcDirs = [ "src/" ] project.ext.mainClassName = "io.wasin.testjavaapp.Main" project.ext.assetsDir = new File("../assets"); dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } repositories { mavenCentral() } task run(dependsOn: classes, type: JavaExec) { main = project.mainClassName classpath = sourceSets.main.runtimeClasspath standardInput = System.in workingDir = project.assetsDir ignoreExitValue = true } 

Desafortunadamente, todavía no funcionó y es el mismo error que se muestra.

Actualización 4

@aristotll proporcionó información en un comentario que probó con Android Studio y enfrentó el mismo problema, pero no con IntelliJ. Dijo que podría ser un error de Android Studio. Así que supongo que probaría algunas veces más y luego decidiría si es lo suficientemente sólido como para informar de un error. Gracias por tomarse el time para probar.