Kotlin javaClass <>在最新的Android Studio 3.0中缺少依赖关系

工具链

  • Android Studio 3.0 Canary 2:

    Build#AI-171.4041253,构建于2017年5月24日JRE:1.8.0_112-release-b736 x86_64 JVM:由JetBrains sro开发的OpenJDK 64位服务器VM Mac OS X 10.12.5

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

问题javaClass<>缺失,Android Studio无法“导入”。

我做了什么

  1. 创建新的Android项目,目标API 23,并告诉它包括一个“基本活动”。

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

这些是我添加到我的应用程序模块的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类MainViewModel:ViewModel(){}

  3. 然后,我去了我的活动,并试图做这个谷歌文档说: https : //developer.android.com/topic/libraries/architecture/viewmodel.html

这是在Java中,但转换为Kotlin, 我认为它应该是这样的:

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

问题是,Android Studio没有找到javaClass,修复(按⌥⏎ )没有任何作用。

Android Studio屏幕截图

我错过了什么?

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

在课程开始之后,我在Android Studio中执行了Code -> Convert Java Class To Kotlin ,生成的Kotlin类具有以下行:

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

这完美地编译。 我将不得不更多地了解哪一个是正确的,但是如果你像我一样,这个人可能会为你节省一些时间。