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部件上崩溃。 我徘徊,如果它有什么关系,如果用户已经登录,它不能更新。 我可能会尝试一个共享的首选项,并保存用户名和电子邮件,只是擦拭注销。

  • Kotlin:循环遍历一个过滤的(可能是空的和至多一个元素)列表
  • python vars()在Kotlin中
  • Kotlin与JPA / Hibernate:没有“开放”没有懒加载?
  • val ... get(){...}在Kotlin
  • 将ByteArrayOutputStream转换为Kotlin中的json
  • 如何将作为模块的create-react-kotlin-app添加到kotlin-multiplatform项目中?
  • 聪明的演员是不可能的,因为...是一个可变的财产,可能已经改变了这个时间
  • Kotlin:我如何传递一个谓词到CharSequence.any()函数?
  • Kotlin:大量的ConsPStack,我该如何避免?
  • 我怎样才能避免在Kotlin空属性
  • Kotlin用集合中的lastOrNull()替换isEmpty()和last()
  • Kotlin language will be the best programming language for Android.