コードが正しい場合でも、AndroidFirebaseのログインと登録アプリがクラッシュします。これに対する解決策は何ですか

user8538017

私はAndroidを初めて使用します。私はこのコードをインターネットからコピーしました。このコードは以前に実行されていました。しかし今、アプリはクラッシュします。これは、[登録]をクリックした後に表示されます。クラッシュする正確な理由がわかりません。AndroidStudioでFirebaseを使用してログイン登録のようなアプリに取り組んでいます。正常にビルドされますが、スマートフォンで実行するとランチャーアクティビティは機能しますが、ボタンを使用してFirebaseログインアクティビティにアクセスすると問題が発生します。クラッシュを解決するにはどうすればよいですか?

Javaファイル。

package com.example.omkar.smileservices;

import android.app.ProgressDialog;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Patterns;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

public class signup extends AppCompatActivity implements View.OnClickListener{

private EditText inputName,inputEmail, inputPassword, inputConfirmPassword;
private Button btnRegister, btnSignIn;
private ProgressDialog progressDialog;
private FirebaseAuth mAuth;

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

    mAuth = FirebaseAuth.getInstance();

    if(mAuth.getCurrentUser() != null){
        //profile activity
        finish();
        startActivity(new Intent(signup.this,home.class));
    }

    progressDialog =new ProgressDialog(this);

    btnRegister = (Button) findViewById(R.id.register);
    btnSignIn = (Button) findViewById(R.id.signin);
    inputName = (EditText)findViewById(R.id.name);
    inputEmail = (EditText) findViewById(R.id.email);
    inputPassword = (EditText) findViewById(R.id.password);
    inputConfirmPassword = (EditText)findViewById(R.id.conpassw);

    btnRegister.setOnClickListener(this);
    btnSignIn.setOnClickListener(this);
}

@Override
public void onStart() {
    super.onStart();
    // Check if user is signed in (non-null) and update UI accordingly.
    FirebaseUser currentUser = mAuth.getCurrentUser();
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.signin:
            startActivity(new Intent(signup.this,login.class));
            break;
        case R.id.register:
            register();
            break;
    }
}

public void register(){
    String name = inputName.getText().toString().trim();
    String email = inputEmail.getText().toString().trim();
    String password = inputPassword.getText().toString().trim();
    String confirmpassword = inputConfirmPassword.getText().toString().trim();

    if (TextUtils.isEmpty(name)) {
        Toast.makeText(getApplicationContext(), "Enter email address!", Toast.LENGTH_SHORT).show();
        return;
    }

    if (TextUtils.isEmpty(email)) {
        Toast.makeText(getApplicationContext(), "Enter email address!", Toast.LENGTH_SHORT).show();
        return;
    }

    if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
        Toast.makeText(getApplicationContext(), "Enter valid email address!", Toast.LENGTH_SHORT).show();
        return;
    }

    if (TextUtils.isEmpty(password)) {
        Toast.makeText(getApplicationContext(), "Enter password!", Toast.LENGTH_SHORT).show();
        return;
    }

    if (TextUtils.isEmpty(confirmpassword)) {
        Toast.makeText(getApplicationContext(), "Enter password!", Toast.LENGTH_SHORT).show();
        return;
    }

    if (password.length() < 6) {
        Toast.makeText(getApplicationContext(), "Password too short, enter minimum 6 characters!", Toast.LENGTH_SHORT).show();
        return;
    }

    if(!confirmpassword.matches(password)){
        inputConfirmPassword.setError("Doesn't match the Password.");
        inputConfirmPassword.requestFocus();
        return;
    }

    progressDialog.setMessage("Registering..");
    progressDialog.show();

    //create user
    mAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(signup.this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    Toast.makeText(signup.this, "createUserWithEmail:onComplete:" + task.isSuccessful(), Toast.LENGTH_SHORT).show();

                    if (!task.isSuccessful()) {
                       // progressDialog.dismiss();
                        Toast.makeText(signup.this, "Unable to Register. Please try Later", Toast.LENGTH_LONG).show();
                    } else {
                       // progressDialog.dismiss();
                        Toast.makeText(signup.this, "Registered Successfully..", Toast.LENGTH_SHORT).show();
                        Intent intent = new Intent(signup.this, home.class);
                        finish();
                        startActivity(intent);
                    }
                }
            });

}
}

クラッシュログ

03-28 13:19:30.498 24522-24540/com.example.omkar.smileservices D/FA: Logging 
event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, 
firebase_previous_class(_pc)=login, 
firebase_previous_id(_pi)=9003268579764646367, 
firebase_screen_class(_sc)=signup, 
firebase_screen_id(_si)=9003268579764646368}]
03-28 13:19:54.733 24522-24522/com.example.omkar.smileservices 
E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.example.omkar.smileservices, PID: 24522

java.lang.NullPointerException: Attempt to invoke virtual method 
'android.text.Editable android.widget.EditText.getText()' on a null object reference
                                                                                 at com.example.omkar.smileservices.signup.register(signup.java:75)
                                                                                 at com.example.omkar.smileservices.signup.onClick(signup.java:68)
                                                                                 at android.view.View.performClick(View.java:5637)
                                                                                 at android.view.View$PerformClick.run(View.java:22429)
                                                                                 at android.os.Handler.handleCallback(Handler.java:751)
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                 at android.os.Looper.loop(Looper.java:154)
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
カタリンギタ

クラッシュはNullPointerExceptionが原因で発生し、次の行が原因である可能性があります。

inputName.getText().toString().trim();

ログのエラーが言うように:

EditText.getText()nullオブジェクト参照で仮想メソッドを呼び出そうとしました

nullオブジェクト参照がinputNameであるのは明らかです。これはXMLレイアウトのeditTextを指している必要があります。したがって、次の行で

 inputName = (EditText) findViewById(R.id.name);

findViewByIdメソッドは、ビューをEditText(ビュー)変数に正常にバインドしませんでしたinputName

コメントで示唆されているように、設定したXMLレイアウトファイル(activity_signup.xml)にidのEditTextが含まれていることを確認することで、これを解決できますname

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

TOP 一覧

  1. 1

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  2. 2

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  3. 3

    Python / SciPyのピーク検出アルゴリズム

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  6. 6

    androidsoongビルドシステムによるネイティブコードカバレッジ

  7. 7

    ZScalerと証明書の問題により、Dockerを使用できません

  8. 8

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  9. 9

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  10. 10

    二次導関数を数値計算するときの大きな誤差

  11. 11

    Ansibleで複数行のシェルスクリプトを実行する方法

  12. 12

    画像変更コードを実行してもボタンの画像が変更されない

  13. 13

    Reactでclsxを使用する方法

  14. 14

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  15. 15

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  16. 16

    PyTesseractを使用した背景色のため、スクリーンショットからテキストを読み取ることができません

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  20. 20

    好き/愛の関係のためのデータベース設計

  21. 21

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

ホットタグ

アーカイブ