android.arch.lifecycle.ViewModelProviders 在 Kotlin 代码中无法识别
android.arch.lifecycle.ViewModelProviders is not recognized in Kotlin code
对于Java项目,为了识别android.arch.lifecycle.ViewModelProviders
,我简单地在我的build gradle
中定义如下
Java 项目
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
。我试过了
Kotlin 项目
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
请问还有什么我遗漏的吗?
请试试这个:
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 时正在使用的。
希望对您有所帮助。
使用 kapt
你还应该 apply plugin: 'kotlin-kapt'
.
请试试这个,更改您的视图模型和扩展版本“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.0
降级version 1.1.1
时我的问题就解决了。
您需要检查降级版本号。
在我的例子中,我还需要从 gradle.properties 中删除这些行:
android.useAndroidX=true
android.enableJetifier=true
我知道之前有人问过这个问题,当时它并没有被弃用,而是为了其他开发者的信息。 Class 已被弃用,现在您可以仅使用构造函数直接使用 ViewModelProvider。
对于Java项目,为了识别android.arch.lifecycle.ViewModelProviders
,我简单地在我的build gradle
Java 项目
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
。我试过了
Kotlin 项目
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
请问还有什么我遗漏的吗?
请试试这个:
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 时正在使用的。
希望对您有所帮助。
使用 kapt
你还应该 apply plugin: 'kotlin-kapt'
.
请试试这个,更改您的视图模型和扩展版本“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.0
降级version 1.1.1
时我的问题就解决了。
您需要检查降级版本号。
在我的例子中,我还需要从 gradle.properties 中删除这些行:
android.useAndroidX=true
android.enableJetifier=true
我知道之前有人问过这个问题,当时它并没有被弃用,而是为了其他开发者的信息。 Class 已被弃用,现在您可以仅使用构造函数直接使用 ViewModelProvider。