命中ViewModel没有零参数构造函数

阿里亚克斯
Cannot create an instance of class com.comp.app.winners.WinnersViewModel
Caused by: java.lang.InstantiationException: java.lang.Class<com.comp.app.winners.WinnersViewModel> has no zero argument constructor

尝试使用hilt解析片段上的视图模型时出现错误

// Proj
ext.hilt_version = '2.32-alpha'
ext.lifecycle_version = "2.2.0"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"

// App
implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
kapt "com.google.dagger:hilt-compiler:$hilt_version"
implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
kapt 'androidx.hilt:hilt-compiler:1.0.0-alpha03'
implementation "androidx.fragment:fragment-ktx:1.1.0"

@HiltAndroidApp
class MyApplication : Application()

@Module
@InstallIn(SingletonComponent::class)
class ApplicationModule {
    @Provides
    fun provideService(): MyService = MyServiceImpl()
}

@AndroidEntryPoint
class HomeActivity : AppCompatActivity() {

    // Fragment is added here
    private fun openFragment(fragment: Fragment) =
        supportFragmentManager.beginTransaction().apply {
            replace(R.id.container, fragment)
            addToBackStack(null)
            commit()
        }
}

@AndroidEntryPoint
class WinnersFragment: Fragment() {
    private val viewModel: WinnersViewModel by viewModels()
}

@HiltViewModel
class WinnersViewModel @Inject constructor(
    private val service: MyService
) : ViewModel()

片段还有其他要做的事情吗?我需要以某种方式提供viewModel吗?

注意:这是崩溃/运行时错误,不是编译错误

伊恩汉尼巴拉克

您需要升级到Fragment 1.2.0或更高版本。

根据Lifecycle 2.2.0发行说明ViewModelProviderHilt在后台使用的新API仅在使用Fragment 1.2.0或更高版本时适用。使用较旧版本的Fragments时,这些API未连接到片段,因此在使用时不会使用启用Hilt的ViewModel工厂by viewModels()

您应该升级到Fragment 1.2.5(Fragment 1.2.X集的最新版本)或Fragment 1.3.0,它们都包含必要的API挂钩以使Hilt正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ViewModel没有零参数构造函数

来自分类Dev

Android:使用柄引发的ViewModel没有零参数构造函数”

来自分类Dev

AndroidViewModel没有零参数构造函数。如何解决呢?

来自分类Dev

超类'Bloc <xxx,xxx>'在dart中没有零参数构造函数

来自分类Dev

java.lang.InstantiationException:类com.e没有零参数构造函数

来自分类Dev

java.lang.InstantiationException:类没有零参数构造函数

来自分类Dev

原因:java.lang.InstantiationException:类com.bustracker.PostData没有零参数构造函数

来自分类Dev

没有参数的std :: thread构造函数

来自分类Dev

(Java入门):构造函数没有参数?

来自分类Dev

....没有定义无参数构造函数?

来自分类Dev

没有构造函数的C ++零初始化

来自分类Dev

如何在dart中使用抽象类执行继承?错误:超类SpanishData没有零参数构造函数

来自分类Dev

没有参数的构造函数不起作用

来自分类Dev

调用没有硬编码参数的构造函数(耦合)

来自分类Dev

= default和没有参数的空构造函数之间的区别?

来自分类Dev

错误:没有构造函数的实例与参数列表匹配

来自分类Dev

如何检查没有参数的类的构造函数

来自分类Dev

没有在类中定义3个参数的构造函数?

来自分类Dev

没有参数的构造函数给我错误

来自分类Dev

没有参数名称的C ++构造函数

来自分类Dev

没有构造函数的实例与参数列表匹配

来自分类Dev

MVC:此对象没有无参数构造函数

来自分类Dev

Java-使没有参数的构造函数成为强制

来自分类Dev

DatabaseException: 类缺少没有参数的构造函数

来自分类Dev

类缺少没有参数的构造函数 - 但我提供了一个构造函数

来自分类Dev

意外错误“没有匹配的函数可调用”,期望构造函数没有参数

来自分类Dev

派生类(构造函数有参数)和基类(构造函数不带参数)之间没有可行的转换

来自分类Dev

零参数构造函数有什么好处?什么时候理想?

来自分类Dev

没有匹配函数可调用带有参考参数的构造函数

Related 相关文章

  1. 1

    ViewModel没有零参数构造函数

  2. 2

    Android:使用柄引发的ViewModel没有零参数构造函数”

  3. 3

    AndroidViewModel没有零参数构造函数。如何解决呢?

  4. 4

    超类'Bloc <xxx,xxx>'在dart中没有零参数构造函数

  5. 5

    java.lang.InstantiationException:类com.e没有零参数构造函数

  6. 6

    java.lang.InstantiationException:类没有零参数构造函数

  7. 7

    原因:java.lang.InstantiationException:类com.bustracker.PostData没有零参数构造函数

  8. 8

    没有参数的std :: thread构造函数

  9. 9

    (Java入门):构造函数没有参数?

  10. 10

    ....没有定义无参数构造函数?

  11. 11

    没有构造函数的C ++零初始化

  12. 12

    如何在dart中使用抽象类执行继承?错误:超类SpanishData没有零参数构造函数

  13. 13

    没有参数的构造函数不起作用

  14. 14

    调用没有硬编码参数的构造函数(耦合)

  15. 15

    = default和没有参数的空构造函数之间的区别?

  16. 16

    错误:没有构造函数的实例与参数列表匹配

  17. 17

    如何检查没有参数的类的构造函数

  18. 18

    没有在类中定义3个参数的构造函数?

  19. 19

    没有参数的构造函数给我错误

  20. 20

    没有参数名称的C ++构造函数

  21. 21

    没有构造函数的实例与参数列表匹配

  22. 22

    MVC:此对象没有无参数构造函数

  23. 23

    Java-使没有参数的构造函数成为强制

  24. 24

    DatabaseException: 类缺少没有参数的构造函数

  25. 25

    类缺少没有参数的构造函数 - 但我提供了一个构造函数

  26. 26

    意外错误“没有匹配的函数可调用”,期望构造函数没有参数

  27. 27

    派生类(构造函数有参数)和基类(构造函数不带参数)之间没有可行的转换

  28. 28

    零参数构造函数有什么好处?什么时候理想?

  29. 29

    没有匹配函数可调用带有参考参数的构造函数

热门标签

归档