簡體   English   中英

java.lang.IllegalArgumentException:給定字符串為空或 null

[英]java.lang.IllegalArgumentException: Given String is empty or null

我是 firebase 的新手,正在嘗試創建登錄代碼。 每次我嘗試按下將字段留空的按鈕時,應用程序都會崩潰,即使我已經編寫了相同的代碼。 我在這里附上了相同的 java 代碼。

MainActivity2.java

public class Main2Activity extends AppCompatActivity {

    private EditText email,password;
    private Button btn;
    private FirebaseAuth mAuth;
    private FirebaseAuth.AuthStateListener mAuthListener;

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

        mAuth = FirebaseAuth.getInstance();
        email = findViewById(R.id.editText2);
        password = findViewById(R.id.editText3);
        btn = findViewById(R.id.button2);


        mAuthListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                if(firebaseAuth.getCurrentUser() != null){
                    //means user has logged in
                    startActivity(new Intent(Main2Activity.this, New.class));

                }

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

    @Override
    protected void onStart() {
        super.onStart();

        mAuth.addAuthStateListener(mAuthListener);

    }

    private void startSignin(){
        String mail = email.getText().toString();
        String pass = password.getText().toString();

        //To make sure user field is not left blank
        if(TextUtils.isEmpty(mail)||TextUtils.isEmpty(pass)){
            Toast.makeText(Main2Activity.this,"Fields are empty",Toast.LENGTH_LONG).show();
        }

        mAuth.signInWithEmailAndPassword(mail,pass).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(!task.isSuccessful()){ //user didnt login in successfully
                    Toast.makeText(Main2Activity.this,"Sign in Problem",Toast.LENGTH_LONG).show();
                }
            }
        });
    }

}

我在執行它給我的方法時遇到了一個問題:

2020-07-08 17:17:24.276 11020-11020/? E/example.fireap: Unknown bits set in runtime_flags: 0x8000
2020-07-08 17:17:24.957 11020-11020/? E/libc: Access denied finding property "ro.vendor.df.effect.conflict"
2020-07-08 17:17:25.381 11020-11020/com.example.fireapp E/GraphicExt: Can't load libboost_ext_fwk
2020-07-08 17:17:25.381 11020-11020/com.example.fireapp E/GraphicExt: GraphicExtModuleLoader::CreateGraphicExtInstance false
2020-07-08 17:17:25.410 11020-11167/com.example.fireapp E/gralloc: Arm Module v1.0
2020-07-08 17:17:25.411 11020-11167/com.example.fireapp E/ion: ioctl c0044901 failed with code -1: Invalid argument
2020-07-08 17:17:28.880 11020-11020/com.example.fireapp E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.fireapp, PID: 11020
    java.lang.IllegalArgumentException: Given String is empty or null

如果您的某個字段為空,mAuth 代碼仍將執行。 如果您不想要這種行為,則必須在 if 分支之后添加 else 。

if(TextUtils.isEmpty(mail)||TextUtils.isEmpty(pass)){
        Toast.makeText(Main2Activity.this,"Fields are empty",Toast.LENGTH_LONG).show();
    }
else {
    mAuth ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM