小编Dan*_*Yon的帖子

UninitializedPropertyAccessException:lateinit 属性尚未初始化

我有一个类,我将它注入到 ViewModel + ViewModel 工厂中,当在活动的 onCreate 方法中初始化视图模型时,它表示传递的值未初始化。

下面是我的代码

我对 Kotlin 很陌生,所以尝试过调试,但被困在这个问题上。

这是 MainActivity 代码:

class MainActivity: AppCompatActivity(), RepoSelectedListener {


    @Inject
    lateinit var viewModel: MainActivityListViewModel

    lateinit var lifecycleOwner: LifecycleOwner
    lateinit var repoSelectedListener: RepoSelectedListener

    @Inject
    lateinit var repository: RepoRepository


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        viewModel = ViewModelProviders.of(this, ViewModelFactory(repository)).get(MainActivityListViewModel::class.java)

        repoRecyclerView.apply {
            layoutManager = LinearLayoutManager(context)
            adapter = RepoListAdapter(viewModel, lifecycleOwner, repoSelectedListener)
        }


**My ViewModel:**



   class MainActivityListViewModel @Inject constructor(val 
    repoRepository: RepoRepository): BaseViewModel() {

    //private lateinit var repoRepository: RepoRepository
    private var disposable: CompositeDisposable? = null …
Run Code Online (Sandbox Code Playgroud)

android kotlin dagger-2

18
推荐指数
3
解决办法
4万
查看次数

标签 统计

android ×1

dagger-2 ×1

kotlin ×1