我有一个使用以下库的现有Android项目:
我正在尝试添加Kotlin支持,以便我可以将项目慢慢迁移到Kotlin。 这就是我所做的。
将其中一个类转换为Kt类并移至src/main/kotlin/..package..
在源集中添加了kotlin。 sourceSets { main.java.srcDirs + =' src / main / kotlin' }
当我进行干净构建并部署应用程序时,我得到NoClassDefFoundError异常。但是,如果我再次部署它可以正常工作。
有什么建议?我在转换的类中没有任何注释,所以我没有应用kapt
插件。
注意:我使用的是最新的kotlin 1.0.4。我也禁用了即时运行。
答案 0 :(得分:4)
转到Files > Settings
并完全关闭Instant Run
,我的意思是应取消选中所有复选框。
清理并重建项目。
然后它应该工作
修改:正如您所说,Instant已停用 - 使用 protip
检查您的配置并更新Gradle和Android Studio(如果您不使用)最新的。
根据此issue,将Gradle插件版本从2.10更改为2.14.1可能有所帮助。
<强>普罗蒂普:强> 使用组合Ctrl + Shift + A查找
等命令 Configure Kotlin in Project
Configure Kotlin Updates
Convert Java File to Kotlin
答案 1 :(得分:0)
首先你需要用kotlin配置android studio,因为这需要在android studio中添加kotlin插件,然后需要添加依赖项然后将java类转换为kotlin请看看这个视频。
答案 2 :(得分:0)
在使用Java调用Kotlin类时,使用kt
后缀。
否则在Kotlin类中的包之前添加@file:JvmName("Utils")
如果你必须在java中使用你想要的任何自定义名称Utils
来调用它。