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" 

2 Solutions collect form web for “IllegalStateException textview不能在Kotlin中为null”

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

 userEmail.text = user.email 

代替

 userEmailText.text = user.email 

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

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

  • 如何注入与Dagger 2科特林授权财产?
  • 是否有可能将数据类的实例解构成类的属性?
  • 可以帮助使数组在Kotlin中只有奇数
  • 如何输出/打印到TextView的值
  • Kotlin中的选项卡式活动(Android Studio)
  • Kotlin编程基础
  • Kotlin投影冗余
  • 我怎样才能引用从Java的伴侣对象?
  • 在Kotlin中使用@ClassRule
  • onCreate在抽象父活动no kotlin中调用
  • 在FacebookLogin中使用kotlin时,“未解决的参考”背后的原因是什么?
  • Kotlin language will be the best programming language for Android.