我正在尝试熟悉Kotlin在我的Android应用程序中使用。首先,我想尝试一些简单的kotlin示例,只是为了熟悉kotlin的语法。
我在android项目中使用main方法创建了一个名为Main.kt
的类。
fun main(args: Array<String>) {
println("Hello World"); }
Android工作室向我展示了主方法左侧的kotlin图标,当我点击此图标时,它向我显示以下三个选项:
1)运行Mainkt
2)Debug 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)
我遇到了这么小的问题。如果你们中的任何人遇到这样的问题以及解决方案是什么,请告诉我。
答案 0 :(得分:8)
Android Studio(intellij)提供了REPL(实时评估打印循环)工具来编写和执行kotlin代码。
Tool -> kotlin -> kotlin REPL
的身份打开kotlin REPL 编写代码或import
类
提示:
答案 1 :(得分:6)
class Main {
companion object {
@JvmStatic fun main(args: Array<String>) {
println("Hello!")
}
}
或 只需创建一个主类为“MainKt”的配置。
答案 2 :(得分:3)
您可以创建一个新的Java库模块,您可以在其中运行非Android项目,有关说明,请参阅this answer。这是一个与Java相关的问题,但它也应该与Kotlin main
函数一样。 编辑:我现在无法正常工作。
您也可以使用IntelliJ IDEA代替Java / Kotlin / etc。 IDE而不是Android版,社区版是免费的,支持Kotlin。
如果您只需要运行非常简单的代码,也可以在此处在线完成:https://try.kotlinlang.org/
答案 3 :(得分:3)
正如问题跟踪器中所提到的,临时解决方法是将以下内容添加到根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
答案 4 :(得分:2)
在我的Android Studio中,只需使用main
函数打开Kotlin文件,然后在main
函数的左侧有一个绿色的“运行”三角形。只需单击该文件即可运行该文件。
答案 5 :(得分:1)
目前在Android Studio 3.0中这是不可能的。
已经为此提交了一个错误:https://issuetracker.google.com/issues/68021152
答案 6 :(得分:1)
我遇到了同样的问题,解决方法是在test
文件夹下的测试类中运行您的代码,然后右键单击Run {your test class}
如果你只想玩Kotlin就足够了。
答案 7 :(得分:1)
也许这种方法有效use gradle-3.3,至少它对我有用。
答案 8 :(得分:0)
最简单的方法是创建一个新的Java库模块,例如this,并为Kotlin配置它。
您还必须在导入模块的build.gradle中添加它:
dependencies {
runtimeClasspath files(compileKotlin.destinationDir)
}
答案 9 :(得分:0)
在Android Studio 3.1.3上测试
请注意,这是我其他answer的编辑版本。
使用这种方法,您可以在同一项目中拥有Java / Kotlin模块和Android模块,还可以将Java / Kotlin模块作为独立项目进行编译和运行。
接下来,我们需要添加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中所做的那样)即可。单击应用,然后点击确定。
答案 10 :(得分:0)
现在受支持(V 3.2.1)
我刚刚完成了Android Studio的升级,创建了一个新项目 然后,我等到所有建筑物都完工(如果建议您升级某些东西,请接受)
之后,我创建了一个新的Kotlin文件并添加了您的代码,右键单击并选择Run(运行)选项。
我可以在控制台中看到以下内容
Hello World
以退出代码0结束的过程
答案 11 :(得分:0)
答案 12 :(得分:0)
一种耗时较少的方法是,将Android Studio配置为运行Java程序,然后从该主要方法调用您的Kotlin类:
public class JavaApplication{
public static void main(String[] args){
KotlinApplicationKt.main(new String[]{});
}
}
要配置您的android studio以运行Java应用程序,请执行以下操作: 1.只需添加一个新配置(运行菜单>编辑配置> +图标) 2.选择“应用程序”,然后将主类配置为JavaApplication.class 3.将工作目录设置为项目目录,并将JRE设置为JDK 4.申请并运行!
答案 13 :(得分:0)
这很容易。我看到了与此相关的帖子,因此无法快速跟进。您需要做的唯一区别就是更改配置。因为您要将应用程序编译更新为kotlin类编译。在任何文件夹中创建任何Kotlin文件/类。在Android应用程序的“编辑配置”下,将“部署”选项设置为“无”,将启动值设置为“无”。
答案 14 :(得分:0)
我添加以下内容:
添加此apply plugin: 'kotlin-android'
还有
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:$your-version'
}
这可以解决问题。
答案 15 :(得分:-1)
它是如此简单,无需执行任何单独或特定的任务。
只需在Android Studio中安装Kotlin插件即可。
现在,在android studio中创建新项目时,选中kotlin复选框。
您将在活动中找到默认的kotlin代码,如下所示:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
现在,您可以在Android Studio中使用kotlin进行任何操作;)