IllegalStateException textview不能在Kotlin中为null

我试图创建一个方法来更新用户界面,当活动开始通过在抽屉中设置TextView的文本。 我不断收到一个TextView不能为空的错误?

我得到的错误是非法状态exceptionuserEmail不能为空

这是更新导航抽屉中的配置文件信息的updateUI

private fun updateUI(user:FirebaseUser?) { if (user != null) { val userEmailText = findViewById(R.id.userEmail) userEmail.text = user.email val errorTriage : String? = user.email println("User Email is ="+errorTriage) } else { val userEmailText: TextView = findViewById(R.id.userEmail) userEmailText.text = "Johndoe@someemail.com" userNameText.text = "John Doe" }} 

如果用户已经登录,那么这是对UpdateUI的调用,如果更新导航抽屉中的配置文件数据,这是什么问题。 如果没有,则启动FirebaseUI登录活动。

 override fun onStart() { super.onStart() //Checks to see if user is already signed in if (mAuth.currentUser != null) { updateUI(mAuth.currentUser) } else { //user is not signed in startActivityForResult( AuthUI.getInstance().createSignInIntentBuilder().build(), RC_SIGN_IN) }} 

这是布局

    <TextView android:id="@+id/userEmail" android:layout_width="wrap_content" 

对不起,我整晚都在工作,贴出了令人生气的代码哈哈。 我更新了代码,以解决问题。 此外,我只是意识到,我命名的价值userEmailText,并试图设置

 userEmail.text = user.email 

代替

 userEmailText.text = user.email 

这将解释为什么当我println它会显示它正确的日志猫

更新! 所以我已经知道,它在第一次安装和登录时工作得很好,但由于某种原因,如果在初次登录后关闭应用程序,则在updateUI部件上崩溃。 我徘徊,如果它有什么关系,如果用户已经登录,它不能更新。 我可能会尝试一个共享的首选项,并保存用户名和电子邮件,只是擦拭注销。