You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin安卓应用接入Firebase后启动崩溃、无法显示登录界面如何解决?

问题原因及解决方案

核心错误点

  • 你将findViewById(R.id.buGotosub)的调用写在了MainActivity的类成员属性初始化阶段,此时Activity还未执行onCreate生命周期方法,setContentView(R.layout.activity_main)还没调用,布局未加载到Activity中,调用findViewById只会返回null,你用非空类型接收直接触发空指针异常,导致App启动直接崩溃,布局自然无法显示。

修复步骤

  1. 把button属性的初始化挪到onCreate方法的setContentView调用之后,或者把属性声明为lateinit延迟初始化,修复后的完整代码如下:
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.FirebaseUser


class MainActivity : AppCompatActivity() {

    private lateinit var auth: FirebaseAuth
    // 修改为lateinit延迟初始化,不在类初始化阶段调用findViewById
    private lateinit var button: Button

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        // setContentView执行、布局加载完成后再初始化控件
        button = findViewById(R.id.buGotosub)
        auth = FirebaseAuth.getInstance()
        button.setOnClickListener {
            startActivity(Intent(this,SubscribAcc::class.java))
            finish()
        }
    }

    public override fun onStart() {
        super.onStart()
        val currentUser = auth.currentUser
        updarUI(currentUser)
    }

    fun updarUI(currentUser : FirebaseUser?){

    }
}

其他需检查项

  • 确认google-services.json文件已经放到app模块根目录,项目根目录build.gradle和app模块build.gradle已经正确添加Firebase对应的依赖和插件配置
  • 确认activity_main.xml布局中确实存在id为buGotosub的Button控件,id拼写完全一致
  • 确认你已经在AndroidManifest.xml中注册了SubscribAccActivity,避免跳转时抛出组件未找到异常

内容的提问来源于stack exchange,提问作者Amine Bouhabinie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 07:54:03