Запустить один класс 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.
- Откройте котлин REPL как
Tool -> kotlin -> kotlin REPL
![enter image description here]()
- Напишите свой код
![enter image description here]()
- Нажмите 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
Ответ 5
Это просто невозможно в Android Studio 3.0.
Для этого уже есть ошибка: https://issuetracker.google.com/issues/68021152
Ответ 6
У меня возникла та же проблема, и обходной путь запускает ваш код в тестовом классе в папке test
, затем щелкните правой кнопкой мыши на Run {your test class}
Достаточно, если вы хотите играть только с Котлином.
Ответ 7
Возможно, этот метод работал с использованием gradle-3.3, в аренду это работало для меня.
Ответ 8
Протестировано на Android Studio 3.1.3
Обратите внимание, что это отредактированная версия моего другого ответа.
Используя этот метод, вы можете иметь модули Java/Kotlin и модули Android в одном проекте, а также иметь возможность компилировать и запускать модули Java/Kotlin в качестве самостоятельных проектов.
- Откройте Android-проект в Android Studio. Если у вас его нет, создайте его.
- Нажмите " Файл"> "Новый модуль". Выберите " Библиотека Java" и нажмите " Далее".
- Заполните имя пакета и т.д. И нажмите " Готово". Теперь вы должны увидеть модуль Java в своем проекте Android.
- Добавьте код Java/Kotlin в только что созданный модуль Java.
- Нажмите на выпадающее меню слева. Нажмите " Изменить конфигурации"...
- В новом окне щелкните знак "плюс" в верхнем левом углу окна и выберите " Приложение"
- Появится новая конфигурация приложения, введите данные, такие как ваш основной класс и путь к классу вашего модуля.
- Нажмите " ОК".
-
Затем нам нужно добавить плагин 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
}
}
...
-
Добавьте следующий код на уровень модуля 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
- Создать проект по умолчанию с Gradle
gradle init → kotlin-application
- Импортировать проект в Android Studio
Создайте новую "конфигурацию запуска" с шаблоном "Приложение" и установите "app.AppKt" в качестве "Основного класса" (см. Build. gradel-> mainClassName).
![enter image description here]()
Бегать!
![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. Применить и запустить!