所以我最初尝试将Firebase身份验证Google登录添加到我的应用中。如果没有成功,我决定尝试使用Firebase的官方Quickstart应用程序。我下载了它,将其导入Android Studio并按照他们的指示进行操作。它仍然无法运作。
我会点击“登录”按钮,会出现一个对话框,我会选择我的个人资料,然后什么也没有。调试,我发现onActivityResult result.isSuccess()
方法返回false,我不知道从哪里开始。
经常提供的解决方案清单:
我已将Firebase JSON文件添加到快速入门应用程序中(创建新项目后)
我提供了SHA-1代码
Firebase Auth / Google Repo / Everything是最新版本
我点击了Firebase控制台中的“启用谷歌登录”切换按钮
设备详细信息:
Android设备:Samsung-SM-G530A
Android操作系统版本:5.1.1
Google Play服务版:10.2.0
Firebase / Play Services SDK版本:10.2.0
我的代码是他们的,我没有修改任何东西。找到here。
编辑:所以,我让他们的快速启动工作。我认为这是我的firebase上的SHA-1代码的问题。现在虽然我的应用程序中出现了新问题...每当我打电话给FirebaseAuth时,我都会收到如下错误:
error:cannot access zzbql
class file for com.google.android.gms.internal.zzbql not found
和
Error:Execution failed for task ':app:compileFacebookDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
编辑2:好的,现在一切都搞砸了!在任何xml / layout文件中,我看到有关未实例化的类的各种错误。
java.lang.NoSuchFieldError: AppCompatTextHelper
at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:58)
at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:40)
at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:72)
at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:62)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:465)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:172)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:150)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadClass(LayoutlibCallbackImpl.java:193)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:333)
at android.view.BridgeInflater.onCreateView(BridgeInflater.java:152)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:222)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:548)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:533)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:966)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:533)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$70(RenderTask.java:659)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
答案 0 :(得分:1)
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity /, this / OnConnectionFailedListener*/)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
在上面一行代码的末尾添加mGoogleApiClient.connect();
。
答案 1 :(得分:1)
好的,大家都感谢你的帮助。
原始问题的解决方案是我的SHA-1指纹在Firebase中不正确。
我的编辑解决方案是将com.google.android.gms的版本从10.2.0减少到10.0.1
很奇怪,但它现在有用了!
答案 2 :(得分:0)