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

Mar*_*ini 2 android kotlin android-studio

工具链

  • 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 Mac OS X 10.12.5的OpenJDK 64位服务器VM

  • Google SDK /工具:我已经下载了最新的“全部”文件(至少根据Android Studio SDK管理器,是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"
Run Code Online (Sandbox Code Playgroud)
  1. 同一Gradle中的Kotlin参考是:(compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"我没有添加那个,它是自动生成的)

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

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

  3. 然后,我进入“活动”并尝试执行此Google文档所说的内容:https : //developer.android.com/topic/libraries/architecture/viewmodel.html

它是Java语言,但已转换为Kotlin,我认为它应该像这样:

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

问题在于,Android Studio找不到javaClass,并且该修复程序(按??)没有任何作用。

Android Studio屏幕截图

我想念什么?

Mar*_*ini 5

我决定尝试使用Java To Kotlin转换。因此,我用Java创建了一个新的Activity,并按照Java文档的说明编写了以上代码。

上完班后,我Code -> Convert Java Class To Kotlin在Android Studio中进行了操作,得到的Kotlin类具有以下内容:

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

这样编译完美。我将不得不详细了解哪种语言是正确的,但是如果您像我一样是该语言的新手,则可以为您节省一些时间。