[英]Android Studio 3.0 Preview Missing Imports when refactoring Kotlin code
[英]Kotlin javaClass<> missing dependency in latest Android Studio 3.0
工具鏈 :
Android Studio 3.0 Canary 2:
構建#AI-171.4041253,構建於2017年5月24日JRE:1.8.0_112-release-b736 x86_64 JVM:JetBrains的OpenJDK 64位服務器VM sro Mac OS X 10.12.5
Google SDK / Tools:我已經下載了最新的“全部”(Android O,工具,庫等,至少根據Android Studio SDK Manager)。
問題 :缺少javaClass<>
,Android Studio無法“導入”。
我做了什么 :
創建新的Android項目,目標API 23並告訴它包含“基本活動”。
為ViewModel和Room添加了Gradle依賴項,取自: https : //developer.android.com/topic/libraries/architecture/adding-components.html
這些是我添加到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"
同一Gradle中的Kotlin引用是: compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
(我沒有添加那個,自動出現)
然后我創建了一個名為MainViewModel
的簡單Kotlin類:
import android.arch.lifecycle.ViewModel類MainViewModel:ViewModel(){}
然后我轉到我的活動並嘗試執行此Google文檔所說的內容: https : //developer.android.com/topic/libraries/architecture/viewmodel.html
它是用Java編寫的,但是轉換為Kotlin, 我認為應該是這樣的:
val mainViewModel = ViewModelProviders.of(this).get(javaClass<MainViewModel>)
問題是,Android的工作室沒有找到javaClass和修復(按⌥⏎)不會做任何事情。
我決定嘗試使用Java To Kotlin轉換。 所以我在Java中創建了一個新的Activity,並在java文檔中寫了上面的代碼。
課程結束后,我在Android Studio中進行了Code -> Convert Java Class To Kotlin
,得到的Kotlin類有以下幾行:
val viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
這完全編譯。 我將不得不更多地了解哪一個是正確的,但是如果你像我一樣對語言不熟悉,那么這個可以節省你一些時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.