我试图熟悉Kotlin在我的Android应用程序中使用。首先,我想尝试一些简单的kotlin示例,只是为了熟悉kotlin的语法。
我用android方法在我的android项目中创建了一个名为Main.kt
的类。
fun main(args: Array<String>) {
println("Hello World"); }
Android工作室向我展示了main方法左侧的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)
我遇到了这么小的问题。如果你们中的任何人遇到过这样的问题以及解决方案是什么,请告诉我。
它现在得到支持(V 3.2.1)
我刚刚升级了我的Android工作室,创建了一个新项目,然后等到所有建筑物完工(如果你被建议升级的东西请接受)
之后我创建了一个新的Kotlin文件并添加了你的代码,右键单击并选择Run选项就是这样。
我可以在控制台中看到以下内容
你好,世界
进程以退出代码0结束
您可以创建一个新的Java库模块,您可以在其中运行非Android项目,有关说明,请参阅this answer。这是一个与Java相关的问题,但它也应该与Kotlin main
函数一样。编辑:我现在无法正常工作。
您也可以使用IntelliJ IDEA而不是Java / Kotlin / etc。 IDE而不是Android版,社区版是免费的,支持Kotlin。
如果你只需要运行非常简单的代码,你也可以在这里在线完成:https://try.kotlinlang.org/
如问题跟踪器中所述,临时解决方法是将以下内容添加到根build.gradle
脚本中:
subprojects { subProject ->
afterEvaluate {
if (subProject.plugins.hasPlugin("kotlin") && subProject.plugins.hasPlugin("java-library")) {
subProject.kotlin.copyClassesToJavaOutput = true
subProject.jar.duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
}
}
这在Android Studio 3.0中是不可能的。
我遇到了同样的问题,解决方法是在test
文件夹下的测试类中运行代码,然后右键单击Run {your test class}
如果你只想玩Kotlin就足够了。
也许这种方法适用于use gradle-3.3,它至少对我有用。
在Android Studio 3.1.3上测试过
请注意,这是我的其他answer的编辑版本。
使用此方法,您可以在同一个项目中使用Java / Kotlin模块和Android模块,还可以将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)
}
...
现在,如果单击“运行”,则应编译并运行Java / Kotlin模块。
如果您收到错误Error: Could not find or load main class...
,只需再次输入您的主类(如您在步骤7中所做的那样),即使该字段已填写。单击“应用”,然后单击“确定”。
最简单的方法是创建一个新的Java库模块,如this,并为Kotlin配置它。
您还必须在导入模块的build.gradle中添加它:
dependencies {
runtimeClasspath files(compileKotlin.destinationDir)
}