gpt4 book ai didi

android - Firebase Auth 在 API 15 和 16 上崩溃,调用 FirebaseAuth.signInAnonymously() 时出现 NullPointerException

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:25 24 4
gpt4 key购买 nike

根据 Firebase 支持页面,我在提交官方错误之前在这里发帖。希望 Firebase 团队的某个人可以提供帮助。

我的 Android 应用程序使用 Firebase 匿名身份验证。我一直在使用模拟器对较旧的 Android 版本进行一些测试,并始终在 API 15 和 16 上出现以下异常(到目前为止......还有更多测试要做):

Caused by: java.lang.NullPointerException
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.signInAnonymously(Unknown Source)

Firebase Getting Started指南将 Firebase 列为支持 Android 及更高版本的 v4.0 (API 15),但我想知道这是否已经改变。

我在较新的版本上没有收到此错误。我已经检查了 API 22 及更高版本,没有遇到任何问题。我会在完成 17 到 21 的测试后返返回告。到目前为止,15 和 16 肯定会抛出错误。

我的实现很简单,并且与 Firebase 文档一致。

public abstract class BaseActivity extends AppCompatActivity {
private FirebaseAuth mAuth;
private FirebaseUser mUser = null;
private boolean mFirstAuthListenerRun = true;
private FirebaseAuth.AuthStateListener mAuthStateListener = null;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// We want to know if anyone is signed in, so lets listen for that. Per the docs,
// onCreate is a good place to create the listener:
// Remember though, the event listener can get fired a lot:
// https://firebase.google.com/docs/reference/android/com/google/firebase/auth/FirebaseAuth.AuthStateListener
mAuth = FirebaseAuth.getInstance();
mAuthStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
mFirstAuthListenerRun = false;
// User is signed in
Log.d(GetTag(), "onAuthStateChanged:signed_in:" + user.getUid());
mUser = user;
} else {
// User is signed out
Log.d(GetTag(), "onAuthStateChanged:signed_out");
mUser = null;
if(mFirstAuthListenerRun){
// We're here because the onAuthStateChanged listener has just been registered, but there wasn't a user yet.
// Let's try to sign in.
mFirstAuthListenerRun = false;
Log.d(GetTag(), "onAuthStateChanged:Attempting SignIn");
SignIn();
}
}

AuthStateChanged();
}
};
}

@Override
protected void onStart()
{
super.onStart();
mAuth.addAuthStateListener(mAuthStateListener);
}

@Override
protected void onStop()
{
super.onStop();
mUser = null;
if (mAuthStateListener != null) {
mAuth.removeAuthStateListener(mAuthStateListener);
}
}

public Task<AuthResult> Bounce()
{
SignOut();
return SignIn();
}

public Task<AuthResult> SignIn()
{
return mAuth.signInAnonymously();
}

public void SignOut()
{
mAuth.signOut();
}


public FirebaseUser GetCurrentUser()
{
return mUser;
}

public abstract String GetTag();
public abstract void AuthStateChanged();
}

我已经调试过了,没有,mAuth肯定不为null,如上调用轨迹所示。异常显然来自 Firebase 代码内部,由于混淆,我无法确定问题的根源。

这可能是由于模拟设备上的 Play 服务版本无效?我已经更新了我的图像,并且我使用的是 Google API 图像,但我知道这些图像并不总是保持最新。

两个设备(API 15 和 16)都运行 Play Services v9.2.56。

我正在编译为 API 27,并编译播放服务依赖项的 v11.6.2:

implementation 'com.google.android.gms:play-services-maps:11.6.2'
implementation 'com.google.android.gms:play-services-places:11.6.2'
implementation 'com.google.android.gms:play-services-identity:11.6.2'
implementation 'com.google.android.gms:play-services-location:11.6.2'
implementation 'com.android.support:support-v4:27.0.2'
implementation 'com.google.maps.android:android-maps-utils:0.5'
implementation 'com.google.firebase:firebase-core:11.6.2'
implementation 'com.google.firebase:firebase-database:11.6.2'
implementation 'com.google.firebase:firebase-auth:11.6.2'

如有任何想法,我们将不胜感激。如果没有 Firebase Auth,我的应用程序将完全无用,因此如果 Firebase Auth 不再支持旧版本的 Android,我将不得不升级我的 minSDKTarget。

我在许多运行 Android 6 及更高版本的物理设备上都没有问题。

谢谢!

最佳答案

新的 Firebase 身份验证版本 17.0.0 库已将其 minSdkVersion 更新为 API 级别 16。引用:https://firebase.google.com/support/release-notes/android#version_1700

enter image description here

关于android - Firebase Auth 在 API 15 和 16 上崩溃,调用 FirebaseAuth.signInAnonymously() 时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47986194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com