尝试设置一个使用Firebase Auth来处理用户注册/登录的简单应用。由于我的物理测试设备(HTC M8 7.1.1)和仿真器(5P 7.1.1)的结果不同,因此此问题非常令人困惑。
在模拟器上,单击“登录”或“注册”按钮时出现以下错误。
--------- beginning of crash
03-02 03:24:20.625 3002-3002/com.mad.losesano E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mad.losesano, PID: 3002
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.zzdd)' on a null object reference
at com.google.android.gms.internal.zzdvv.zzb(Unknown Source)
at com.google.android.gms.internal.zzdwc.zzb(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.signInWithEmailAndPassword(Unknown Source)
at com.mad.losesano.LoginActivity.userLogin(LoginActivity.java:69)
at com.mad.losesano.LoginActivity.onClick(LoginActivity.java:105)
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)
Run Code Online (Sandbox Code Playgroud)
在我的物理设备上,当我注册用户时,它可以正常工作。可以在Firebase控制台中看到该用户帐户。当我在此设备上单击“登录”时,没有任何反应。似乎它甚至都没有输入OnClick方法(通过在OnClick方法中运行Log.d消息进行测试,该消息在我单击按钮时不会显示)。
这是LoginActivity代码
package com.mad.losesano;
import android.app.Activity;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.os.Bundle;
import android.util.Log; …Run Code Online (Sandbox Code Playgroud) android nullpointerexception firebase firebase-authentication