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

求助:无法创建CharactersViewModel实例,分页开发报错排查

问题

开发分页功能时遇到以下报错:

Cannot create an instance of class com.example.myapplication.CharactersViewModel

系统无法创建CharactersViewModel实例,相关截图:

  • 报错栈:报错栈截图
  • MainActivity代码:MainActivity代码截图
  • ViewModel代码:ViewModel代码截图
常见原因及解决办法
  • 带参构造未配置Factory
    ViewModelProvider默认只能实例化无参构造的ViewModel。如果你的CharactersViewModel有带参构造(比如传入分页数据源、Repository等),必须自定义ViewModelProvider.Factory来创建实例,或者用依赖注入框架管理。
    示例自定义Factory:

    class CharactersViewModelFactory(private val repo: CharacterRepository) : ViewModelProvider.Factory {
        override fun <T : ViewModel> create(modelClass: Class<T>): T {
            return CharactersViewModel(repo) as T
        }
    }
    

    在Activity中使用Factory创建ViewModel:

    val viewModel = ViewModelProvider(this, CharactersViewModelFactory(repo))[CharactersViewModel::class.java]
    
  • 访问权限问题
    确认CharactersViewModel是public类,构造函数为public(Kotlin默认public,除非显式设置了private/internal)。

  • 依赖注入配置错误(如Hilt)
    若用Hilt注入ViewModel,需检查:

    • ViewModel添加@HiltViewModel注解
    • 构造函数加@Inject注解
    • 宿主Activity/Fragment加@AndroidEntryPoint注解
    • 项目已正确配置Hilt依赖与插件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:24:59