未解决的引用:viewModels()

6

我刚刚开始编写一个 Android 应用程序,想要使用 ViewModel。我查看了官方文档并添加了来自Lifecycle的所有依赖项,但是当我尝试像这样实例化 ViewModelMyViewModel by viewModels()时,出现错误“未解决的引用:viewModels()”。

以下是依赖项:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.13'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    def lifecycle_version = "2.2.0"
    def arch_version = "2.1.0"

    implementation "android.arch.lifecycle:extensions:1.1.1"
    kapt "android.arch.lifecycle:compiler:1.1.1"

    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version"

    kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"

    implementation "androidx.lifecycle:lifecycle-service:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version"

    implementation "androidx.lifecycle:lifecycle-reactivestreams-ktx:$lifecycle_version"
    testImplementation "androidx.arch.core:core-testing:$arch_version"

}

我认为这个问题值得重新开放。虽然主题类似于其他问题,但是他实际面临的问题是不同的。 - Devarshi
1个回答

2
将这个内容加入到您的依赖项中,
implementation "android.arch.lifecycle:extensions:1.1.1"

然后,在build.gradle中添加apply plugin: 'kotlin-kapt'
然后,添加:
kapt "android.arch.lifecycle:compiler:1.1.1"

kapt 替换其他的 annotationProcessor

看看是否起作用,如果没有,请执行以下操作:

文件 -> 清除缓存并重启


还是不行。我添加了依赖项,也许会有帮助。 - Valentin
1
尝试重新构建项目。 - Shakil Ahmed Shaj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接