1

動的機能モジュールでViewModelを作成しようとしています private val viewModel: PostDetailViewModel by viewModels()

断片的に

class PostDetailFragment : DynamicNavigationFragment<FragmentPostDetailBinding>() {

    private val viewModel: PostDetailViewModel by viewModels()
    
    override fun getLayoutRes(): Int = R.layout.fragment_post_detail

    override fun bindViews() {
        // Get Post from navigation component arguments
        val post = arguments?.get("post") as Post
        dataBinding.item = post
        viewModel.updatePostStatus(post)
        
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        initCoreDependentInjection()
        super.onCreate(savedInstanceState)
    }

    private fun initCoreDependentInjection() {

        val coreModuleDependencies = EntryPointAccessors.fromApplication(
            requireActivity().applicationContext,
            DomainModuleDependencies::class.java
        )

        DaggerPostDetailComponent.factory().create(
            coreModuleDependencies,
            requireActivity().application
        )
            .inject(this)

    }
}

結果エラー

Caused by: java.lang.InstantiationException: java.lang.Class<com.x.post_detail.PostDetailViewModel> has no zero argument constructor

アプリモジュールのどのフラグメントでも機能しますが、動的機能モジュールでは機能しません。ViewModel を動的機能モジュールに追加する適切な方法は何ですか? ViewModelFactory を使用してアプリ モジュールで ViewModels を作成し、アプリ モジュールから取得する必要がありますか?

4

1 に答える 1