NullPointerException - 使用电子邮件登录 - Firebase-UI-Auth 1.2.0
NullPointerException - Sign In With Email - Firebase-UI-Auth 1.2.0
我现在使用 Firebase-UI-Auth 面临这个错误好几天了。当您使用电子邮件创建新帐户时,问题就出现了。 NullPointer 刚刚出现在发布版本中(我正在使用混淆器)。
填写表格后出现异常
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
at com.firebase.ui.auth.util.signincontainer.SaveSmartLock.saveCredentialsOrFinish(Unknown Source)
at com.firebase.ui.auth.ui.BaseHelper.saveCredentialsOrFinish(Unknown Source)
at com.firebase.ui.auth.ui.email.RegisterEmailFragment.onComplete(Unknown Source)
at com.google.android.gms.c.l.run(Unknown Source)
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:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
混淆器
依赖关系
启动的方法
private void launchLoginActivityResult() {
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setIsSmartLockEnabled(false)
.setTheme(R.style.LoginTheme)
.setIsSmartLockEnabled(!BuildConfig.DEBUG)
.setProviders(Arrays.asList(new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build(),
new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(),
new AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build()))
.build(),
RC_SIGN_IN);
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_in_right);
}
onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
if (resultCode == ErrorCodes.UNKNOWN_ERROR){
AuthUI.getInstance().signOut(this);
finish();
}
if (resultCode == ErrorCodes.NO_NETWORK){
mTextViewMessage.setVisibility(View.VISIBLE);
mFrameLayoutContainer.setVisibility(View.GONE);
mTextViewMessage.setText(getString(R.string.no_internet));
final DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected");
connectedRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
boolean connected = snapshot.getValue(Boolean.class);
if (connected) {
connectedRef.removeEventListener(this);
relaunchActivity();
}
}
@Override
public void onCancelled(DatabaseError error) {
}
});
}else{
mTextViewMessage.setVisibility(View.GONE);
mFrameLayoutContainer.setVisibility(View.VISIBLE);
}
if (resultCode == RESULT_CANCELED) finish();
} else if (requestCode == RC_BARCODE_CAPTURE) {
if (requestCode == RC_BARCODE_CAPTURE) {
if (resultCode == CommonStatusCodes.SUCCESS) {
if (data != null) {
Barcode barcode = data.getParcelableExtra(BarcodeCaptureActivity.BarcodeObject);
Log.d(TAG, "Barcode read: " + barcode.displayValue);
Fragment searchFragment = SearchResultFragment.newInstance(mUser.getUid(), mFolderId, barcode.displayValue);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_main_container, searchFragment).commit();
} else {
Log.d(TAG, "No barcode captured, intent data is null");
}
}
}
}
}
这是一个已在 v2.0
中修复但尚未发布的错误。如果你想尝试这个修复,你可以用这个包含修复的依赖替换你当前的 firebase-ui-auth
依赖:
compile 'com.github.SUPERCILEX.FirebaseUI-Android:firebase-ui-auth:0f7fc902c62fdc09e1c5812dd4dec2e6f5b4083d'
请注意,这是一个尚未通过质量检查的快照版本。
如果你很好奇,这里是修复它的提交:https://github.com/firebase/FirebaseUI-Android/commit/2a615f67508864aea488d1801dc446c419db64e7。
我现在使用 Firebase-UI-Auth 面临这个错误好几天了。当您使用电子邮件创建新帐户时,问题就出现了。 NullPointer 刚刚出现在发布版本中(我正在使用混淆器)。
填写表格后出现异常
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
at com.firebase.ui.auth.util.signincontainer.SaveSmartLock.saveCredentialsOrFinish(Unknown Source)
at com.firebase.ui.auth.ui.BaseHelper.saveCredentialsOrFinish(Unknown Source)
at com.firebase.ui.auth.ui.email.RegisterEmailFragment.onComplete(Unknown Source)
at com.google.android.gms.c.l.run(Unknown Source)
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:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
混淆器
依赖关系
启动的方法
private void launchLoginActivityResult() {
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setIsSmartLockEnabled(false)
.setTheme(R.style.LoginTheme)
.setIsSmartLockEnabled(!BuildConfig.DEBUG)
.setProviders(Arrays.asList(new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build(),
new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(),
new AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build()))
.build(),
RC_SIGN_IN);
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_in_right);
}
onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
if (resultCode == ErrorCodes.UNKNOWN_ERROR){
AuthUI.getInstance().signOut(this);
finish();
}
if (resultCode == ErrorCodes.NO_NETWORK){
mTextViewMessage.setVisibility(View.VISIBLE);
mFrameLayoutContainer.setVisibility(View.GONE);
mTextViewMessage.setText(getString(R.string.no_internet));
final DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected");
connectedRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
boolean connected = snapshot.getValue(Boolean.class);
if (connected) {
connectedRef.removeEventListener(this);
relaunchActivity();
}
}
@Override
public void onCancelled(DatabaseError error) {
}
});
}else{
mTextViewMessage.setVisibility(View.GONE);
mFrameLayoutContainer.setVisibility(View.VISIBLE);
}
if (resultCode == RESULT_CANCELED) finish();
} else if (requestCode == RC_BARCODE_CAPTURE) {
if (requestCode == RC_BARCODE_CAPTURE) {
if (resultCode == CommonStatusCodes.SUCCESS) {
if (data != null) {
Barcode barcode = data.getParcelableExtra(BarcodeCaptureActivity.BarcodeObject);
Log.d(TAG, "Barcode read: " + barcode.displayValue);
Fragment searchFragment = SearchResultFragment.newInstance(mUser.getUid(), mFolderId, barcode.displayValue);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_main_container, searchFragment).commit();
} else {
Log.d(TAG, "No barcode captured, intent data is null");
}
}
}
}
}
这是一个已在 v2.0
中修复但尚未发布的错误。如果你想尝试这个修复,你可以用这个包含修复的依赖替换你当前的 firebase-ui-auth
依赖:
compile 'com.github.SUPERCILEX.FirebaseUI-Android:firebase-ui-auth:0f7fc902c62fdc09e1c5812dd4dec2e6f5b4083d'
请注意,这是一个尚未通过质量检查的快照版本。
如果你很好奇,这里是修复它的提交:https://github.com/firebase/FirebaseUI-Android/commit/2a615f67508864aea488d1801dc446c419db64e7。