You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行时初始化ViewModel触发ClassCastException问题求助

Android应用崩溃问题:ClassCastException(Room数据持久化场景)

我正在学习Android Developers的《Android Basics with Compose》课程,目前处于Unit 6.2「使用Room实现数据持久化」阶段,是Android开发入门者。我开发了一款名为Outlook Planner的笔记+简易天气预报应用,应用结构参考课程中的Inventory App。

我的HomeViewModel和MakePlanViewModel均通过AppViewModelProvider获取SQLite+Room数据库的依赖,分别用于首页展示笔记列表和MakePlan页面的增改操作。但应用运行时崩溃,抛出如下异常:

java.lang.ClassCastException: android.app.Application cannot be cast to com.example.outlook.planner.OutlookPlannerApplication
at com.example.outlook.planner.ui.AppViewModelProviderKt.outlookPlannerApplication(AppViewModelProvider.kt:42)
at com.example.outlook.planner.ui.AppViewModelProvider$Factory$1$2.invoke(AppViewModelProvider.kt:32)
at com.example.outlook.planner.ui.AppViewModelProvider$Factory$1$2.invoke(AppViewModelProvider.kt:30)

我需要让应用能正常访问数据库,实现笔记的展示和编辑,但目前无法定位和解决问题。这是我的学校项目,已经投入不少精力,希望能得到帮助。

相关代码文件说明:

  • OutlookPlannerApplication:自定义Application类,负责数据库初始化
  • AppViewModelProvider:ViewModel工厂类,用于提供依赖数据库的ViewModel实例
  • HomeViewModel:首页对应的ViewModel,处理笔记列表数据逻辑
  • MakePlanViewModel:新建/编辑笔记页面的ViewModel,处理笔记增改操作
  • 可获取完整项目代码进行排查

内容的提问来源于stack exchange,提问作者Ryan Barillos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 16:03:16