Kotein Framework-属性委托必须具有provideDelegate(..)方法



我正在尝试构建一个具有以下架构的应用程序:LoginActivity->MainActivity->在MainActivity托管的片段中处理的所有其他内容。我也是第一次使用Kotein框架,在我的起始片段中出现了以下错误:

属性委托必须具有一个‘provideDelegate(HomeFragment,KProperty*>'方法。以下功能均不适用。provideDelegate(上下文[用红色突出显示],KProperty<>?(已定义在org.kodein.di.android.KodeinPropertyDelegateProvider类型中"KodeinPropertyDelegateProvider"没有方法"getValue(HomeFragment,KProperty<>(",因此它不能用作代理

这是我迄今为止的代码:

class HomeFragment : Fragment(), KodeinAware {
override val kodein by kodein()
private val factory : MainViewModelFactory by instance()
private lateinit var viewModel: MainViewModel
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val binding : FragmentHomeBinding = FragmentHomeBinding.inflate(inflater, container, false)
viewModel = ViewModelProviders.of(this, factory).get(MainViewModel::class.java)
binding.viewModel = viewModel
return binding.root
}

}

我该怎么解决这个问题?

谢谢:(

Nevermind,在kodein完成任务后添加类型声明…:(

在您的导入中更改

import org.kodein.di.android.kodein

import org.kodein.di.android.x.kodein

你可以这样做:

override val kodein:Kodein by kodein()

相关内容

  • 没有找到相关文章

最新更新