FirebaseAuth给出Null指针异常

时间:2017-12-10 13:40:29

标签: android firebase firebase-authentication

我试图在firebase中注册用户。这是我的代码:

App level gradle:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'com.google.firebase:firebase-core:11.6.2'
compile 'com.google.firebase:firebase-auth:11.6.2'

}

项目级别gradle:

 dependencies {
    classpath 'com.android.tools.build:gradle:3.0.1'
    classpath 'com.google.gms:google-services:3.1.1' // google-services plugin

我的注册用户代码:

    private void registerUser(String name,String email,String password) {
    pBar.setVisibility(View.VISIBLE);
    mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
          if(task.isSuccessful()){
              Toast.makeText(getApplicationContext(),"User Created. Please login.",Toast.LENGTH_LONG).show();
          }
          else {
              Toast.makeText(getApplicationContext(),task.getException().getMessage(),Toast.LENGTH_LONG).show();
          }
          pBar.setVisibility(View.GONE);
        }
    });
}

以下是例外:

java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.tasks.Task com.google.android.gms.common.api.GoogleApi.zzb(com.google.android.gms.common.api.internal.zzdf)' on a null object reference
                  at com.google.android.gms.internal.zzdtp.zzb(Unknown Source)
                  at com.google.android.gms.internal.zzdtw.zza(Unknown Source)
                  at com.google.firebase.auth.FirebaseAuth.createUserWithEmailAndPassword(Unknown Source)
                  at com.banik.helloworld.SignUpActivity.registerUser(SignUpActivity.java:73)
                  at com.banik.helloworld.SignUpActivity.onClick(SignUpActivity.java:68)

我已经在活动的oncreate方法中初始化了mAuth:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);
    mAuth = FirebaseAuth.getInstance();
    name = findViewById(R.id.name);
    email = findViewById(R.id.email);
    mobileNumber = findViewById(R.id.mobilenumber);
    password = findViewById(R.id.password);

    signUpBtn = findViewById(R.id.signup);
    signUpBtn.setOnClickListener(this);
    pBar = findViewById(R.id.signupBar);
}

请帮助我.......

1 个答案:

答案 0 :(得分:0)

您必须在手机或模拟器上安装 Google Play服务

如果您在模拟器上进行测试。 尝试在真实设备上进行测试,或确保在模拟器上安装GPS并提供正确的经度和纬度