大佬教程收集整理的这篇文章主要介绍了FirebaseAuth.getInstance() 返回 null,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在从 Firebase 获取 mAuth.geTinstance() 时遇到问题。它总是返回空值。 由于这个问题,整个应用程序崩溃,我无法继续。我该如何解决这个问题?
我尝试修改 gradle 版本,但这些都没有解决任何问题。我在这里添加了必要的代码片段。
AndroIDManifest.xml
<?xml version="1.0" enCoding="utf-8"?>
<manifest xmlns:androID="http://scheR_965_11845@as.androID.com/apk/res/androID"
package="com.example.smartfaRMANdroIDapp"
xmlns:tools="http://scheR_965_11845@as.androID.com/tools">
<uses-permission androID:name="androID.permission.INTERNET"/>
<application
androID:allowBACkup="true"
androID:icon="@mipmap/ic_launcher"
androID:label="@String/app_name"
tools:node="replace"
androID:rounDicon="@mipmap/ic_launcher_round"
androID:supportsRtl="true"
androID:theme="@style/theme.smartFaRMANdroIDApp">
<activity
androID:name=".MVVm.VIEw.ActivitIEs.DrawerActivity"
androID:label="Drawer Activity"
androID:theme="@style/Apptheme.NoActionbar"
androID:windowsofTinputMode="adjustPan"/>
<activity androID:name=".MVVm.VIEw.ActivitIEs.MainActivity" />
<activity androID:name=".MVVm.VIEw.ActivitIEs.LoginActivity">
<intent-filter>
<action androID:name="androID.intent.action.MAIN" />
<category androID:name="androID.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
摇篮:模块
apply plugin: 'com.androID.application'
apply plugin: 'com.Google.gms.Google-services'
androID {
compileSdkVersion 30
buildToolsversion "30.0.3"
defaultConfig {
applicationID "com.example.smartfaRMANdroIDapp"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionname "1.0"
multIDexEnabled true
testinstrumentationRunner "androIDx.test.runner.AndroIDJUnitRunner"
}
buildTypes {
release {
MinifyEnabled false
proguardfiles getDefaultProguardfile('proguard-androID-optimize.txt'),'proguard-rules.pro'
}
}
compiLeoptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencIEs {
implementation 'androIDx.appcompat:appcompat:1.3.0'
implementation 'com.Google.androID.material:material:1.3.0'
implementation 'androIDx.consTraintlayout:consTraintlayout:2.0.4'
//Firebase Authentication
implementation platform('com.Google.firebase:firebase-bom:28.0.1')
implementation 'com.firebaseui:firebase-ui-auth:7.1.1'
implementation 'com.Google.firebase:firebase-auth'
}
摇篮:项目
// top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositorIEs {
Google()
jcenter()
mavenCentral()
}
dependencIEs {
classpath 'com.androID.tools.build:gradle:4.1.2'
classpath 'androIDx.navigation:navigation-safe-args-gradle-plugin:2.3.5'
classpath 'com.Google.gms:Google-services:4.3.8'
// NOTE: Do not place your application dependencIEs here; they belong
// in the indivIDual module build.gradle files
}
}
allprojects {
repositorIEs {
Google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
登录活动.java
private static final int SIGN_IN = 42;
private static final String TAG = "LoginActivity";
private FirebaseAuth mAuth;
@OverrIDe
protected voID onCreate(Bundle savedInstanceStatE) {
super.onCreate(savedInstanceStatE);
FirebaseApp.initializeApp(this);
mAuth = FirebaseAuth.geTinstance(); //This line returns null
}
@OverrIDe
public voID onStart() {
super.onStart();
FirebaseUser currentUser = mAuth.getCurrentUser();
}
我得到的整个错误异常如下:
E/AndroIDRuntime: FATAL EXCEPTION: main
Process: com.example.smartfaRMANdroIDapp,PID: 16328
java.lang.NullPointerException: Attempt to invoke virtual method 'com.Google.firebase.auth.FirebaseUser com.Google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null object reference
at com.example.smartfaRMANdroIDapp.MVVm.VIEw.ActivitIEs.LoginActivity.onStart(LoginActivity.java:191)
at androID.app.instrumentation.callActivityOnStart(instrumentation.java:1435)
at androID.app.Activity.performStart(Activity.java:8024)
at androID.app.ActivityThread.handleStartActivity(ActivityThread.java:3475)
at androID.app.servertransaction.transactionExecutor.performlifecycleSequence(transactionExecutor.java:221)
at androID.app.servertransaction.transactionExecutor.cycletoPath(transactionExecutor.java:201)
at androID.app.servertransaction.transactionExecutor.executelifecycleState(transactionExecutor.java:173)
at androID.app.servertransaction.transactionExecutor.execute(transactionExecutor.java:97)
at androID.app.ActivityThread$H.handlemessage(ActivityThread.java:2066)
at androID.os.Handler.dispatchmessage(Handler.java:106)
at androID.os.Looper.loop(Looper.java:223)
at androID.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.androID.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:947)
我尝试修改 Gradle 版本,但没有解决任何问题。
这根本与 Gradle 版本无关。除此之外,无需调用:
FirebaseApp.initializeApp(this);
如果您使用 official documentation 集成 Firebase。如果您进行标准集成,Firebase 将在应用启动时自动初始化。
您代码中的问题在于:
tools:node="replace"
它存在于您的 AndroidManifest 文件中。仅当想要 merge manifest files 时才应该出现。
,以上是大佬教程为你收集整理的FirebaseAuth.getInstance() 返回 null全部内容,希望文章能够帮你解决FirebaseAuth.getInstance() 返回 null所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。