簡體   English   中英

谷歌登錄突然不起作用

[英]Google Sign-In suddenly not working

我正在開發一個使用 Google 登錄的 Android 應用程序。

直到最近,一切都運行良好。 我停止了這個項目的工作大約兩個星期,昨天又回到了它,谷歌登錄突然不再工作了。 當我單擊登錄時,登錄彈出窗口打開,我選擇我的帳戶,然后......沒有任何反應。

因此,由於我沒有更改與登錄相關的代碼中的任何內容,因此我開始在其他地方進行搜索。

首先我注意到我的compile 'com.google.android.gms:play-services-auth:11.4.2'可以更新為 11.6.0,所以這就是我所做的。

我再次運行該應用程序,現在它要求我更新 Google Play 服務,所以我點擊了更新按鈕,但同樣沒有任何反應。 我嘗試了多次,但它沒有改變任何東西。 所以我開始尋找其他地方。

我轉到了找到 Google Sign-In 代碼示例的鏈接,查看是否有任何更改……是的,它已更改,10 天前示例已更新,因此我更新了我的代碼,現在沒有更好的了,只是當我單擊登錄時,登錄彈出窗口現在不會出現。

所以我開始更深入地查看日志,這里是有問題的行: W/GooglePlayServicesUtil: Google Play services out of date. Requires 11717000 but found 11577470 W/FA: Service connection failed: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null} W/LoginActivity: signInResult:failed code=12500 W/GooglePlayServicesUtil: Google Play services out of date. Requires 11717000 but found 11577470 W/FA: Service connection failed: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null} W/LoginActivity: signInResult:failed code=12500

很明顯,它應該與 Google Play 服務有關...請注意,我不再收到“更新 Google Play 服務”彈出窗口。 我找到的有關此類問題的大多數答案都建議嘗試使用具有較低 API 的另一個模擬器,或降級 Google Play 服務編譯線,因此我嘗試了兩者。 我曾經在帶有 API 27 的 Pixel XL 上運行我的測試,我在帶有 API 25 的 Nexus 6P 上嘗試過,在這個上我可以進入登錄彈出窗口,但是在選擇我的帳戶時,我得到W/LoginActivity: signInResult:failed code=10. 我還嘗試了兩個真實設備,分別是帶有 API 25 的 OnePlus 3 和帶有 API 24 的三星 Galaxy S6 Edge,我在這兩個設備上遇到了與 Nexus 6P 相同的錯誤。 此外,我沒有找到有關錯誤代碼 10 含義的任何信息。關於 Google Play 服務降級,如果我這樣做,則無法識別新代碼示例的某些類。 此外,在 API 低於 27 的設備上嘗試時,它似乎不再是 Google Play 服務的問題。

更新:我發現錯誤代碼 10 表示“應用程序配置錯誤”。 我不明白在一切正常的時間和它停止工作的時間之間沒有任何變化,無論如何我生成了一個新的 debug.keystore,一個新的配置文件並將它添加到我的 /app. 顯然它仍然不起作用。

更新 2 :當我嘗試了所有可以想到的方法時,我知道我的 debug.keystore 有問題(我到處都讀到,如果在構建項目時刪除該文件應該重新生成,但對我而言並非如此)。 我卸載/重新安裝了 Android Studio,希望它至少能解決這個問題。 好吧,我在 .android 文件夾中有很多我不記得的文件,現在我只有 1 個文件夾和 2 個文件,顯然 debug.keystore 不是其中之一。 所以這讓我想起了獲取 SHA1 簽名的另一種方法,這就是我在回答帖子中解釋的內容。 但是我的 debug.keystore 仍然有問題,所以如果有人有想法......

我終於找到了讓它工作的方法。 這可能不是正確的解決方案,因為仍然有問題(我將編輯問題以解釋原因),但它有效,所以也許它會有所幫助。

所以問題來自配置文件,更准確地說是用於生成它的 debug.keystore,事實上,我試圖通過在 Gradle 面板中運行signReport來生成獲取配置文件所需的 SHA1 簽名,而不是運行keytool -exportcert -list -v \\ -alias androiddebugkey -keystore ~/.android/debug.keystore命令,現在它又可以工作了。

我仍然不明白這個問題最初是如何出現的,因為我沒有改變任何東西......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM