Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
lateinit属性fragmentDispatchingAndroidInjector尚未初始化_Android_Kotlin - Fatal编程技术网

lateinit属性fragmentDispatchingAndroidInjector尚未初始化

lateinit属性fragmentDispatchingAndroidInjector尚未初始化,android,kotlin,Android,Kotlin,当我试图改变显示器的方向时 它将显示此错误“lateinit属性fragmentDispatchingAndroidInjector尚未初始化” MainActivity.kt class MainActivity : BaseActivity(), HasSupportFragmentInjector { @Inject internal lateinit var fragmentDispatchingAndroidInjector: DispatchingAndroidIn

当我试图改变显示器的方向时 它将显示此错误“lateinit属性fragmentDispatchingAndroidInjector尚未初始化”

MainActivity.kt

class MainActivity : BaseActivity(), HasSupportFragmentInjector {

    @Inject
    internal lateinit var fragmentDispatchingAndroidInjector: DispatchingAndroidInjector<Fragment>
    internal lateinit var mainMenuPagerAdapter: MainMenuPagerAdapter


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        mainMenuPagerAdapter = MainMenuPagerAdapter(supportFragmentManager)
        setUpMainMenuPagerAdapter()
    }

    override fun onFragmentAttached() {
    }

    override fun onFragmentDetached(tag: String) {
    }

    override fun supportFragmentInjector(): AndroidInjector<Fragment>? {
        return fragmentDispatchingAndroidInjector
    }

    private fun setUpMainMenuPagerAdapter() {
        mainMenuPagerAdapter.count = 1
        mainMenuViewPager.adapter = mainMenuPagerAdapter
        tabLayout.addTab(tabLayout.newTab().setText(R.string.my_account).setIcon(R.drawable.ic_person_white_24dp))
        mainMenuViewPager.offscreenPageLimit = tabLayout.tabCount;
        mainMenuViewPager.addOnPageChangeListener(TabLayout.TabLayoutOnPageChangeListener(tabLayout));
        tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
            override fun onTabSelected(tab: TabLayout.Tab) {
                mainMenuViewPager.currentItem = tab.position
            }
            override fun onTabUnselected(tab: TabLayout.Tab) {}
            override fun onTabReselected(tab: TabLayout.Tab) {}
        })
    }

}
class MainActivity:BaseActivity(),HassSupportFragmentInjector{
@注入
内部lateinit var碎片DispatchengAndroidInjector:DispatchengAndroidInjector
内部lateinit var MainMenuAgerAdapter:MainMenuAgerAdapter
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
mainMenuPagerAdapter=mainMenuPagerAdapter(supportFragmentManager)
setUpMainMenuPagerAdapter()
}
覆盖已附加的碎片(){
}
重写已分离的碎片(标记:字符串){
}
重写fun supportFragmentInjector():AndroidInjector{
返回碎片分派和重新分配
}
私人娱乐设置MainMenuPagerAdapter(){
mainMenuPagerAdapter.count=1
mainMenuViewPager.adapter=mainMenuPager适配器
tabLayout.addTab(tabLayout.newTab().setText(R.string.my\u account.setIcon(R.drawable.ic\u person\u white\u 24dp))
main菜单viewpage.offscreenPageLimit=tabLayout.tabCount;
MainMenuViewManager.addOnPageChangeListener(TabLayout.TabLayoutOnPageChangeListener(TabLayout));
tabLayout.AddOnTableSelectedListener(对象:tabLayout.OnTableSelectedListener{
覆盖选定的列表(选项卡:TabLayout.tab){
MainMenuViewPage.currentItem=tab.position
}
覆盖已选择的对象(tab:TabLayout.tab){}
重写已重新选择的选项卡(选项卡:TabLayout.tab){}
})
}
}

这是我的
BaseActivity.ky

我在旋转屏幕时遇到了相同的故障,我在super.onCreate(savedInstanceState)之后调用了AndroidInjection.Injection(this)


在这之后没有崩溃。这可能会有所帮助。

请附上基本活动的代码您好,对不起,我试图编辑代码,但无法编辑,因此我在答案中添加了@Ilyatretyakov。这不是答案。我试图在原始问题中编辑,但无法在其中添加更多代码,我不知道为什么。
abstract class BaseActivity : AppCompatActivity(), MVPView, BaseFragment.CallBack {

    private var progressDialog: ProgressDialog? = null

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

    override fun hideProgress() {
        progressDialog?.let { if (it.isShowing) it.cancel() }
    }

    override fun showProgress() {
        hideProgress()
        progressDialog = CommonUtil.showLoadingDialog(this)
    }

    private fun performDI() = AndroidInjection.inject(this)

}
override fun onCreate(savedInstanceState: Bundle?) {
        AndroidInjection.inject(this)
        super.onCreate(savedInstanceState)
       ...
    }