对于Java项目,为了识别android.arch.lifecycle.ViewModelProviders
,我只需在构建gradle中定义以下内容
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
def lifecycle_version = "1.1.1"
// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
// alternately - if using Java8, use the following instead of compiler
implementation "android.arch.lifecycle:common-java8:$lifecycle_version"
但是,在Kotlin项目中,我几乎无法识别android.arch.lifecycle.ViewModelProviders
。我尝试过
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
def lifecycle_version = "1.1.1"
// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
kapt "android.arch.lifecycle:compiler:$lifecycle_version"
它仍然无法识别android.arch.lifecycle.ViewModelProviders
完整的build.gradle如下-https://github.com/yccheok/AndroidDraw/blob/748baf44571c5b83d0c6e5b6a7137eef9cb17cdc/app/build.gradle
我可以知道,还有其他我错过的地方吗?
答案 0 :(得分:1)
使用kapt
也应该apply plugin: 'kotlin-kapt'
。
答案 1 :(得分:1)
请尝试此操作,更改您的视图模型和扩展版本“ 1.1.0”
def lifecycle_version = "1.1.0" // change in this line
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
implementation "android.arch.lifecycle:viewmodel:$lifecycle_version"
注意:我也使用了这种错误消息,但是当我将version 1.1.1
降级为version 1.1.0
时,我的问题就解决了。
您需要检查您的版本号降级。
答案 2 :(得分:0)
请尝试:
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel:2.0,0'
implementation 'androidx.lifecycle:lifecycle-livedata:2.0.0'
这是我现在转换为androidX时使用的。
希望这会有所帮助。
答案 3 :(得分:0)
就我而言,我还需要从gradle.properties中删除以下行:
chromeBrowser.Load(_pathTmp);
答案 4 :(得分:0)
我知道这个问题以前是在不被弃用的时候问到的,但它是为其他开发者提供的信息。该类已被弃用,现在您可以仅使用构造函数直接使用ViewModelProvider。
有关更多信息,Android Developer