首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在我的应用程序中集成防火墙身份验证后,应用程序崩溃

在我的应用程序中集成防火墙身份验证后,应用程序崩溃
EN

Stack Overflow用户
提问于 2022-07-14 17:24:03
回答 1查看 67关注 0票数 -1

我的应用程序在添加了firebase身份验证后,在启动它时崩溃(基本上是使用firebase代码的任何活动)。

这是逻辑猫

代码语言:javascript
复制
2022-07-14 20:17:21.538 15482-15482/com.example.flimer E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.flimer, PID: 15482
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.flimer/com.example.flimer.SignUp}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3086)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3318)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:113)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:71)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2044)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:226)
        at android.app.ActivityThread.main(ActivityThread.java:7212)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:576)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:956)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
        at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:170)
        at android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java:157)
        at android.content.Context.obtainStyledAttributes(Context.java:682)
        at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:848)
        at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:815)
        at androidx.appcompat.app.AppCompatDelegateImpl.findViewById(AppCompatDelegateImpl.java:640)
        at androidx.appcompat.app.AppCompatActivity.findViewById(AppCompatActivity.java:259)
        at com.example.flimer.SignUp.<init>(SignUp.kt:15)
        at java.lang.Class.newInstance(Native Method)
        at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:69)
        at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1215)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3074)

这是启动屏幕的代码。

代码语言:javascript
复制
class Startscreen : AppCompatActivity() {
    private lateinit var auth: FirebaseAuth

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_startscreen)

        auth = Firebase.auth

        val user = auth.currentUser

        if (Build.VERSION.SDK_INT < 16) {
            window.setFlags(
                WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN)
        }

        if (user != null){
            Handler().postDelayed({
                    val intent = Intent(this@Startscreen, MainActivity::class.java)
                    startActivity(intent)
                    finish()
            }, 2000)
        }else{
            Handler().postDelayed({
                val intent = Intent(this@Startscreen, SignUp::class.java)
                startActivity(intent)
                finish()
            },2000)
        }
    }

这是我开始注册时屏幕上发生的崩溃。

代码语言:javascript
复制
class SignUp : AppCompatActivity() {
    private lateinit var etEmail: String
    private lateinit var etPass: String
    private lateinit var etPass2: String
    private lateinit var btn: Button

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_sign_up)
        etEmail = findViewById<EditText>(R.id.et_email).text.toString().trim { it <= ' ' }
        etPass = findViewById<EditText>(R.id.pass).text.toString().trim { it <= ' ' }
        etPass2 = findViewById<EditText>(R.id.et_pass2).text.toString().trim { it <= ' ' }
        btn = findViewById(R.id.btn_create)

        btn.setOnClickListener {
            dialog()
            if (isValid(etEmail, etPass, etPass2)){
                signUp(etEmail, etPass)
            }
        }

    }

    private fun isValid(email: String, pass: String,pass2: String ): Boolean{
        return if (email.isEmpty() && pass.isEmpty()){
            Toast.makeText(this@SignUp, "Fill in the blanks", Toast.LENGTH_SHORT).show()
            false
        }else if(pass != pass2){
            Toast.makeText(this@SignUp, "Passwords do not match", Toast.LENGTH_SHORT).show()
            false
        }else{
            true
        }
    }
    private fun signUp(email: String, pass: String){
        var auth: FirebaseAuth = Firebase.auth
        auth.createUserWithEmailAndPassword(email,pass).addOnCompleteListener {
            dismiss()
            if (it.isSuccessful){
                Toast.makeText(this@SignUp, "Success",Toast.LENGTH_SHORT ).show()
            }else{
                Toast.makeText(this@SignUp, it.exception!!.message, Toast.LENGTH_SHORT).show()
            }
        }
    }
    private fun dialog(){
        val dialog = Dialog(this)
        dialog.setContentView(R.layout.custom_dialog)
        dialog.show()
    }
    private fun dismiss(){
        Dialog(this).dismiss()
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-07-15 02:59:18

初始化auth变量的步骤如下

代码语言:javascript
复制
auth = FirebaseAuth.getInstance()

而不是你在做什么

代码语言:javascript
复制
auth = Firebase.auth
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72984423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档