android - 无法解析符号 ViewModelProviders
问题描述
我正在研究 Android ViewModel 架构组件,但在尝试在 AppCompatActivity 中初始化 ViewModel 时出现上述错误。
import android.arch.lifecycle.ViewModelProviders;
ViewModelProviders.of(this).get(CounterViewModel.class);
有一些与此相关的问题和文章,他们指出在应用程序 gradle 文件中添加lifecycle:extensions
和lifecycle:viewmodel
依赖项,但我仍然收到错误。
implementation "android.arch.lifecycle:extensions:1.1.1"
implementation "android.arch.lifecycle:viewmodel:1.1.1"
annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
包 android.arch.lifecycle 不包含类ViewModelProviders
,它只有ViewModelProvider
类。
还需要添加什么才能访问ViewModelProviders
该类?
编辑 :
app/build.gradle 中的依赖:
dependencies {
implementation project(':lifecycle')
implementation project(':base')
implementation "android.arch.lifecycle:extensions:1.1.1"
implementation "android.arch.lifecycle:viewmodel:1.1.1"
annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
}
解决方案
android.arch.lifecycle:extensions:1.1.1
肯定有android.arch.lifecycle.ViewModelProviders
。如果您打开项目树的“外部库”部分并检查库内容,您可以在 Android Studio 中看到它:
未找到的一些可能原因import
包括:
你
implementation "android.arch.lifecycle:extensions:1.1.1"
放错地方了(应该是在dependencies
模块的build.gradle
文件的闭包里,比如app/build.gradle
)您没有将 Android Studio 与 Gradle 构建文件同步(通常会提示您执行此操作,但您可以从 Android Studio 主菜单中的 File > Sync Project with Gradle Files 手动执行此操作)
推荐阅读
- angularjs - 根据 ngIf 更改背景颜色
- javascript - 当onchange处理程序使用javascript检测长度为4时如何在状态文本框中自动添加连字符
- python - 如何在 Django 的数据表中创建过滤器列?
- reactjs - 如何在平面列表中的本地反应中对图像设置 onError
- reactjs - 使用 testing-library 和 jest 的 React 组件抛出的测试错误
- unix - if [['hostname'='bob']] 在 UNIX 中这条语句的目的是什么
- node.js - 如何使用 NodeJS 更新 AWS Secrets Manager
- javascript - JavaScript 函数如何在 php 循环中工作?
- wikidata - 为什么在更新 wikibase 时出现“无效的 snak 数据”?
- dask - Dask +SLURM over ftp mount (CurlFtpFS)