如果您尝试使用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类吗?
答案 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)