Android Studio 无法识别ViewModelProvider类 引入官方依赖仍未解决
问题排查及解决方案
1. 首要问题:缺少必要导入
你当前的MainActivity代码中没有导入ViewModelProvider对应的类,Android自然无法识别该类,在MainActivity的导入块中添加以下代码即可:
import androidx.lifecycle.ViewModelProvider;
2. 依赖冲突修复
你同时引入了lifecycle-compiler注解处理器和Java8专用的lifecycle-common-java8依赖,二者功能重复,同时引入可能引发编译冲突,删除以下冗余依赖行即可:
annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
3. 依赖版本稳定性优化
你当前使用的2.4.0-rc01是Lifecycle的候选测试版本,本身可能存在兼容问题,建议将lifecycle_version替换为正式稳定版,例如:
def lifecycle_version = "2.6.2"
4. 后续验证步骤
修改完成后按以下顺序操作验证:
- 点击Android Studio右上角的
Sync Project with Gradle Files按钮同步依赖 - 依次点击菜单栏
Build -> Clean Project再点击Build -> Rebuild Project - 如果仍有识别异常,可以点击
File -> Invalidate Caches清除缓存后重启Android Studio
可选代码规范优化
你的MovieViewModel中movieMutableLiveData当前为包访问权限,建议改为private并对外暴露只读的LiveData,避免外部直接修改数据:
private MutableLiveData<String> movieMutableLiveData= new MutableLiveData<>(); public LiveData<String> getMovieLiveData() { return movieMutableLiveData; }
在Activity中观察时调用getMovieLiveData()即可。
内容的提问来源于stack exchange,提问作者lina saeed
相关产品推荐
相关产品推荐

