Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我不知道为什么我的程序老是崩溃_Java_Android - Fatal编程技术网

Java 我不知道为什么我的程序老是崩溃

Java 我不知道为什么我的程序老是崩溃,java,android,Java,Android,我设法改变了代码中的一些东西,我不是java方面的专家,但我不知道问题出在哪里。该应用允许我登录,但在任何东西真正弹出之前崩溃 我试着改正我犯过的错误,但仍然一事无成 package com.example.dksimplelogin; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import androi

我设法改变了代码中的一些东西,我不是java方面的专家,但我不知道问题出在哪里。该应用允许我登录,但在任何东西真正弹出之前崩溃

我试着改正我犯过的错误,但仍然一事无成

package com.example.dksimplelogin;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

public class Welcome extends AppCompatActivity {
    private TextView mTextMessage;
    private Button Logout;
    private FirebaseAuth firebaseAuth;
    private FirebaseAuth mAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);


        Logout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                logout();
            }
        });
    }

    private void logout()
    {
        firebaseAuth.signOut();
        finish();
        startActivity(new Intent(Welcome.this, MainActivity.class));
    }

    private void account()
    {
        startActivity(new Intent(Welcome.this, account.class));
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId())
        {
            case  R.id.LogoutMenu:
            {
                logout();
            }
            case  R.id.ProfileMenu:
            {
                account();
            }
            case R.id.SettingsMenu:
            {

            }
        }
        return super.onOptionsItemSelected(item);
    }


    }
调试日志

2019年7月26日10:42执行任务:[:app:assembleDebug]

10:43渐变构建在32秒28毫秒内完成

10:43会话“应用”:启动活动时出错

10:43执行任务:[:app:assembleDebug]

10:43渐变构建在4秒275毫秒内完成

10:50仿真程序:进程已完成,退出代码为0

10:54执行任务:[:app:assembleDebug]

10:54渐变构建在2秒726毫秒内完成


使用findViewbyId启动按钮实例,然后尝试作为注销

     Logout=(Button)findViewbyId(/*your button id*/);
     Logout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            logout();
        }
    });

在onCreate方法中添加几行代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_welcome);



    //Add these to initialize the objects 

    mTextMessage = (TextView)findViewById(R.id.name_of_textview_in_xml); 
    Logout = (Button)findViewById(R.id.name_of_button_in_xml);
    FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
    FirebaseAuth mAuth = FirebaseAuth.getInstance();

    // Add the above lines to your code      


    Logout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            logout();
        }
    });
}
注意:使用布局xml文件中给定的实际id在xml中命名\u文本视图\u
同样地,用布局xml文件中给定的实际id替换\u按钮\u的名称\u,似乎不会崩溃,因为它以代码
0
退出,这意味着程序只是结束了,因为它只是完成了任务。您还没有初始化按钮和firebase auth对象调用对象上的方法,而没有初始化它会导致空指针异常,应用程序当然会崩溃。为什么有两个不同的auth变量?问这个问题的人有两个auth变量。。我不知道他为什么用它。完整的代码仍然没有显示。。初始化没有坏处,最好是初始化。。。因此,可以防止调用未初始化的对象上的方法可能导致的任何nullPointerException:)@阿施施