Запустить один класс kotlin с основной функцией в студии android

Я пытаюсь познакомиться с Kotlin, чтобы использовать его в своих приложениях для Android. Поэтому сначала я хочу попробовать некоторые простые примеры kotlin, просто чтобы ознакомиться с синтаксисом kotlin.

Я создал класс под названием Main.kt в моем проекте Android с помощью всего лишь основного метода.

fun main(args: Array<String>) {
println("Hello World"); }

Студия Android показывает мне значок kotlin слева от основного метода, и когда я нажимаю на этот значок, он показывает мне ниже трех вариантов:

1) Запустить Mainkt

2) Отладка Mainkt

3) Запуск Mainkt с покрытием

Я выбрал первый, но он меня бросает

Exception in thread "main" java.lang.ClassNotFoundException: com.vikalp.kotlin.MainKt
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.AppMainV2.main(AppMainV2.java:107)

Я застрял с такой маленькой проблемой. Дайте мне знать, если кто-то из вас столкнулся с такой проблемой и каково решение.

Ответ 1

Студия Android (intellij) предоставляет инструмент REPL (Real Eval Print Loop) для написания и выполнения кода kotlin.

  1. Откройте котлин REPL как Tool -> kotlin -> kotlin REPL

enter image description here

  1. Напишите свой код

enter image description here

  1. Нажмите Ctrl + Enter (на Mac), чтобы выполнить свой код (обратите внимание на комбинацию клавиш на другой платформе)

Либо напишите код, либо import класс

enter image description here

Советы:

  • Перестройте проект после изменения исходного кода
  • Используйте клавишу со стрелкой, чтобы вернуться в историю

Ответ 2

class Main {
companion object {
    @JvmStatic fun main(args: Array<String>) {
        println("Hello!")
    }
}

или Просто создайте конфигурацию с основным классом как "MainKt".

enter image description here

Ответ 3

Вы можете создать новый модуль библиотеки Java, где вы можете запускать проекты, отличные от Android, см. этот ответ для получения инструкций. Это вопрос, связанный с Java, но он должен работать все равно с функциями Kotlin main. Изменить: я не могу заставить это работать прямо сейчас.

Вместо этого вы можете использовать IntelliJ IDEA, который является Java/Kotlin/etc. IDE, а не Android, издание сообщества бесплатное и поддерживает Kotlin.

Если вам просто нужно запустить действительно простой код, вы также можете сделать это онлайн здесь: https://try.kotlinlang.org/

Ответ 4

Как упоминалось в трекер-проблеме, временное обходное решение заключается в том, чтобы добавить в корневой скрипт build.gradle:

subprojects { subProject ->
    afterEvaluate {
        if (subProject.plugins.hasPlugin("kotlin") && subProject.plugins.hasPlugin("java-library")) {
            subProject.kotlin.copyClassesToJavaOutput = true
            subProject.jar.duplicatesStrategy = DuplicatesStrategy.EXCLUDE
        }
    }
}

См. Https://issuetracker.google.com/issues/68021152#comment12

Ответ 6

У меня возникла та же проблема, и обходной путь запускает ваш код в тестовом классе в папке test, затем щелкните правой кнопкой мыши на Run {your test class}

Достаточно, если вы хотите играть только с Котлином.

Ответ 8

Протестировано на Android Studio 3.1.3

Обратите внимание, что это отредактированная версия моего другого ответа.

Используя этот метод, вы можете иметь модули Java/Kotlin и модули Android в одном проекте, а также иметь возможность компилировать и запускать модули Java/Kotlin в качестве самостоятельных проектов.

  1. Откройте Android-проект в Android Studio. Если у вас его нет, создайте его.
  2. Нажмите " Файл"> "Новый модуль". Выберите " Библиотека Java" и нажмите " Далее".
  3. Заполните имя пакета и т.д. И нажмите " Готово". Теперь вы должны увидеть модуль Java в своем проекте Android.
  4. Добавьте код Java/Kotlin в только что созданный модуль Java.
  5. Нажмите на выпадающее меню слева. Нажмите " Изменить конфигурации"...
  6. В новом окне щелкните знак "плюс" в верхнем левом углу окна и выберите " Приложение"
  7. Появится новая конфигурация приложения, введите данные, такие как ваш основной класс и путь к классу вашего модуля.
  8. Нажмите " ОК".
  9. Затем нам нужно добавить плагин Kotlin. Добавьте следующий код на ваш уровень проекта build.gradle (строки для добавления обозначаются символом >>>):

    buildscript {
        >>> ext.kotlin_version = '1.2.51'
        repositories {
            google()
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.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
        }
    }
    ...
    
  10. Добавьте следующий код на уровень модуля build.gradle (строки для добавления обозначаются символом >>>):

    apply plugin: 'java-library'
    >>> apply plugin: 'kotlin'
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        >>> implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        >>> runtimeClasspath files(compileKotlin.destinationDir)
    }
    ...
    

Теперь, если вы нажмете run, это должно скомпилировать и запустить ваш модуль Java/Kotlin.

Если вы получите ошибку Error: Could not find or load main class..., просто введите свой основной класс (как вы сделали на шаге 7) снова, даже если поле уже заполнено. Нажмите " Применить", а затем нажмите " ОК".

Ответ 9

Самый простой способ - создать новый библиотечный модуль Java, подобный этому, и настроить его для Kotlin.

Вы также должны добавить это в свой build.gradle импортированного модуля:

dependencies {
    runtimeClasspath files(compileKotlin.destinationDir)
}

Ответ 10

Это так просто, не нужно выполнять какую-либо отдельную или конкретную задачу.

Просто установите плагин Kotlin в Android Studio.

Теперь, во время создания нового проекта в студии android, выберите kotlin checkbox.

В своей деятельности вы найдете код kotlin по умолчанию:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}

Теперь вы можете делать все, что хотите, с kotlin в Android Studio;)

Ответ 11

Теперь поддерживается (V 3.2.1)

Я только что закончил модернизацию моей Android студии, создал новый проект Затем я подождал, пока все здание не будет завершено (если вам что-то советуют обновить, примите)

После этого я создал новый файл Kotlin и добавил ваш код, щелкните правой кнопкой мыши и выберите опцию "Выполнить" и все.

Я вижу следующее в консоли

Привет, мир

Процесс завершен с кодом выхода 0

Ответ 12

  1. Создать проект по умолчанию с Gradle

    gradle init → kotlin-application

  2. Импортировать проект в Android Studio
  3. Создайте новую "конфигурацию запуска" с шаблоном "Приложение" и установите "app.AppKt" в качестве "Основного класса" (см. Build. gradel-> mainClassName). enter image description here

  4. Бегать! enter image description here

Ответ 13

Менее трудоемким способом было бы настроить Android Studio для запуска Java Program, а затем вызвать свой класс Kotlin из этого основного метода:

public class JavaApplication{
  public static void main(String[] args){
     KotlinApplicationKt.main(new String[]{});
  }
}

Чтобы настроить андроид студию для запуска Java-приложения:  1. Просто добавьте новую конфигурацию (меню "Пуск"> "Редактировать настройки"> "+")  2. Выберите Приложение & затем настройте свой основной класс на свой JavaApplication.class  3. Установите рабочий каталог в каталог вашего проекта & JRE как JDK  4. Применить и запустить!