Kotlin javaClass<>在最新的Android Studio 3.0

时间:2017-05-27 23:35:47

标签: android android-studio kotlin

工具链

  • Android Studio 3.0 Canary 2:

    Build#AI-171.4041253,建于2017年5月24日 JRE:1.8.0_112-release-b736 x86_64 JVM:JetBrains s.r.o的OpenJDK 64位服务器VM Mac OS X 10.12.5

  • Google SDK / Tools:我已经下载了最新的"全部" (Android O,工具,库等至少根据Android Studio SDK Manager)。

问题javaClass<>丢失了,Android Studio无法导入#34;。

我做了什么

  1. 创建新的Android项目,目标API 23并告诉它包含&#34;基本活动&#34;。

  2. 为ViewModel和Room添加了Gradle依赖项:https://developer.android.com/topic/libraries/architecture/adding-components.html

  3. 这些是我添加到App Module的gradle文件中的行:

    compile "android.arch.lifecycle:runtime:1.0.0-alpha1"
    compile "android.arch.lifecycle:extensions:1.0.0-alpha1"
    annotationProcessor "android.arch.lifecycle:compiler:1.0.0-alpha1"    
    compile "android.arch.persistence.room:runtime:1.0.0-alpha1"
    annotationProcessor "android.arch.persistence.room:compiler:1.0.0-alpha1"
    
    1. 同一Gradle中的Kotlin引用是:compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"(我没有自动添加该引用)

    2. 然后我创建了一个名为MainViewModel的简单Kotlin类:

      导入android.arch.lifecycle.ViewModel class MainViewModel:ViewModel(){}

    3. 然后我转到我的活动并试图执行此Google文档所说的内容:https://developer.android.com/topic/libraries/architecture/viewmodel.html

    4. 它是用Java编写的,但转换为Kotlin,我认为应该是这样的:

      val mainViewModel = ViewModelProviders.of(this).get(javaClass<MainViewModel>)

      问题是Android Studio没有找到javaClass而且修复(按 )没有做任何事情。

      Android Studio screen shot

      我错过了什么?

1 个答案:

答案 0 :(得分:5)

我决定尝试使用Java To Kotlin转换。所以我在Java中创建了一个新的Activity,并在java文档中写了上面的代码。

课程结束后,我在Android Studio中做了Code -> Convert Java Class To Kotlin,得到的Kotlin课程有以下几行:

val viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)

这完全编译。我将不得不更多地了解哪一个是正确的,但是如果你像我一样对语言不熟悉,那么这个可以节省你一些时间。