Ошибка ClassNotFoundException для проекта Kotlin (не для Android) на Android Studio

Я попытался создать обычный проект Kotlin (не-андроид, только рабочий стол / проект командной строки) с Android Studio 2.3.3.

Я выполнил шаги, изложенные здесь, но с другим контентом build.gradle содержимое которого я поделил здесь .

Фактически, это содержимое build.gradle я скопировал из файла build.gradle после создания нового проекта с помощью IntelliJ Community Edition (2017.2).

Затем я создаю конфигурацию, чтобы иметь возможность запускать ее на рабочем столе с надлежащей настройкой, например Main Class, Working directory и Use classpath модуля. Вы можете видеть на изображении ниже.

введите описание изображения здесь

и следующая структура файла проекта у меня есть

введите описание изображения здесь

Затем я синхронизирую проект, он преуспевает. Но когда я пытаюсь запустить проект, возникает ошибка. Я получил следующую ошибку.

  "/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 

Я видел параметр classpath, как указано выше /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java не имеет связанной директории для моего проекта. Я не знаю, как добавить каталог classpath через gradle, несмотря на то, что я уже настроил его в конфигурациях.

Как я могу решить эту проблему?

Обновление :

Ниже приведен мой код Main.kt Это просто для целей тестирования. Так что просто распечатайте что-нибудь.

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

Также я обновил build.gradle для версии Kotlin в соответствии с версией плагина Kotlin на Android Studio. Теперь это ext.kotlin_version = '1.1.4-2' . Хотя это еще не решает проблему.

Обновление 2

Я проверил внутри каталог build на том же уровне каталога src . Нет файлов .class или intermediates файлов, созданных / построенных там, только kotlin-build/caches/version.txt и все. Других файлов нет. Таким образом, проблема может быть связана с тем, что исходные файлы не скомпилированы вообще?

Обновление 3

Я попытался создать новый модуль, чтобы узнать, является ли это основной причиной или нет. Также создана папка с assets чтобы снова действовать как рабочий каталог, перестроенная исходная папка, чтобы быть следующей.

введите описание изображения здесь

Теперь у нас есть 2 модуля.

  1. testJavaApp – корневой
  2. desktop – состоит из Main.kt и используется как исполняемый файл на рабочем столе

testJavaApp имеет следующий код для 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 } 

также для desktop модуля имеется следующий код для 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 } 

К сожалению, это все еще не сработало, и это та самая ошибка, которая проявилась.

Обновление 4

@aristotll предоставил информацию в комментарии, который он тестировал в Android Studio, и столкнулся с такой же проблемой, но не с IntelliJ. Он сказал, что это может быть ошибка Android Studio. Поэтому я предполагаю, что я попробую еще несколько раз, а затем решить, достаточно ли он достаточно, чтобы сообщать об ошибке. Спасибо, что нашли время для тестирования.