AndroidStudio 3.1.1没有在类路径上放置kotlin类,因此您无法从IDE运行kotlin类

时间:2018-04-14 15:05:55

标签: android-studio kotlin

如果您尝试使用kotlin REPL,则会出现以下问题。但是,如果您尝试从IDE运行kotlin主要乐趣,您会更直接地看到相同的问题 - kotlin类不在类路径上。相反,他们在... / app / build / tmp / kotlin-classes / debug。但是,它们确实放在了dex文件中。

我正在寻找Android的Kotlin,并从一个非常简单的项目开始(由Android Studio 3.1.1新创建)。

要学习kotlin,我想玩一个从java转换而来的简单的.kt类。

重建后,Kotlin REPL启动,出现此问题:

You’re running the REPL with outdated classes: Build module 'app' and restart

Welcome to Kotlin version 1.2.30 (JRE 1.8.0_152-release-1024-b01)
Type :help for help, :quit for quit

import hanafey.com.shoppy.Thing
val x = Thing("a", "b", "c", 1.0)
println(x)
error: unresolved reference: Thing
import hanafey.com.shoppy.Thing

在这种情况下,我忽略了"过时的课程"警告,因为它不是真的。

所以我相信IDE并点击提供的链接到" Build module' app'并重启"。现在它声称还有另一个问题:

There were compilation errors in module app
Information:Kotlin: kotlinc-jvm 1.2.30 (JRE 1.8.0_152-release-1024-b01)
Information:4/14/18 7:49 AM - Compilation completed with 1 error and 0 warnings in 889ms
Error:Kotlin: Unsupported plugin option: org.jetbrains.kotlin.android:enabled=true

我认为我应该能够在REPL中使用非android相关的kotlin类吗?

2 个答案:

答案 0 :(得分:0)

当AS启动kotlin REPL时,它在包含java文件的类路径中包含以下目录:

... /应用/建造/中间体/类/调试

然而,kotlin课程在:

... /应用/建造/ TMP /科特林类/调试

gradle构建不是将kotlin类放入java类中,或者kotlin repl不是在类路径上的所有必需目录中启动的。

答案 1 :(得分:0)

如果我理解正确,则不包含包 hanafey.com.shoppy,因此不包含 unresolved reference

:load /dir/path 可用于导入 dir/path 中的所有包,以下应该可以工作。

val x = Thing("a", "b", "c", 1.0)