Android应用连接Firebase报错求助:使用助手工具登录触发异常
你好呀!看你在把Firebase接入Android应用时,使用助手工具登录触发了报错,结合你提供的Gradle配置,我整理了几个针对性的解决方向,应该能帮你搞定这个问题:

核心问题分析
你的项目使用的Gradle插件版本(3.1.0)过于老旧,Firebase助手工具对低版本Gradle的兼容性较差,同时缺少Firebase必需的插件配置,这大概率是报错的根源。
具体修复步骤
升级项目级Gradle插件版本
打开项目根目录的build.gradle,将Gradle插件版本升级到兼容Firebase的版本,比如4.2.2(这个版本适配性较好),同时新增Firebase服务插件依赖:buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:4.2.2' // 新增Firebase服务插件依赖 classpath 'com.google.gms:google-services:4.3.15' } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }同时记得修改
gradle/wrapper/gradle-wrapper.properties里的Gradle分发版本,对应4.2.2插件的是gradle-6.7.1-all.zip:distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip完善模块级Gradle配置
打开模块目录(一般是app)的build.gradle,在文件最末尾添加Firebase插件应用:apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "com.gpacalc.shannirmala.gpacalculator" minSdkVersion 15 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' testCompile 'junit:junit:4.12' compile 'com.android.support:design:27.1.1' } // 新增这一行,应用Firebase服务插件 apply plugin: 'com.google.gms.google-services'清理并重建项目
完成配置修改后,点击Android Studio顶部的File -> Invalidate Caches / Restart,选择Invalidate and Restart。重启后等待Gradle同步完成,再尝试使用Firebase助手工具登录。
补充说明
如果以上步骤还是没解决,你可以尝试手动下载Google Services JSON文件(从Firebase控制台获取),放到app目录下,再同步Gradle,跳过助手工具的登录环节,也能完成Firebase的接入。
内容的提问来源于stack exchange,提问作者Namindu Sanchila

