簡體   English   中英

引發Google Awareness API SecurityException

[英]Google Awareness API SecurityException is thrown

我正在使用Google Awareness API中的 DetectedActivityFence 它在我自己的設備上工作正常,但我在Crashlytics中收到了幾起關於SecurityException的崩潰事件。

Fatal Exception: java.lang.SecurityException: Invalid API Key for package = [package_name] .Status code received = -1
   at android.os.Parcel.readException(Parcel.java:1540)
   at android.os.Parcel.readException(Parcel.java:1493)
   at com.google.android.gms.common.internal.zzu$zza$zza.zza(Unknown Source)
   at com.google.android.gms.common.internal.zzd.zzqz(Unknown Source)
   at com.google.android.gms.internal.zzpw$zzc.zzapl(Unknown Source)
   at com.google.android.gms.internal.zzpw$zzf.run(Unknown Source)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
   at java.util.concurrent.FutureTask.run(FutureTask.java:237)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
   at com.google.android.gms.internal.zzrn.run(Unknown Source)
   at java.lang.Thread.run(Thread.java:818)

這種情況在Android版本之間沒有任何相關性,即它影響來自不同制造商和不同Android版本(5.x-6.x)的設備。 這些設備沒有root,看起來像在Stock ROM上工作。 10%的用戶會出現此問題。

我確定我使用的是正確的API密鑰,否則我可以在自己的設備上看到崩潰,是嗎?

有沒有人面臨同樣的問題?

有一個錯誤錯誤地將網絡操作中的一些錯誤錯誤地認證為應用程序,因為表明API密鑰未正確設置,即使實際錯誤是其他錯誤。 這已在內部修復,並將在下一個Google Play服務版本中推出。

目前,最好的解決方法是在調用GoogleApiClient.connect()的線程上添加UncaughtExceptionHandler。 如果在主線程上調用GoogleApiClient.connect(),則可以通過Looper.myLooper()。getThread()獲取Thread實例。

來自: https//code.google.com/p/android/issues/detail?id = 223751#c2

我們的檢查中存在一個錯誤,當有網絡錯誤進行身份驗證時,有時會拋出此SecurityException。 該修補程序將在下一版Google Play服務中推出。

目前,最好的解決方法是在您調用GoogleApiClient.connect()的線程上設置UncaughtExceptionHandler。 對於大多數人來說,這將在主線程上,您可以通過Looper.myLooper()。getThread()獲得。

但是你也會注意到回復表明這不是一個可靠的工作。

您可能還會注意到該線程的OP引用了此SO帖子,但是接受的答案不會引用該線程,即使它們是逐字復制的。 非常糟糕的形式!

我遇到了這個問題,因為我遇到了同樣的錯誤,我認為可能是Awareness API密鑰未同步到Google Developer Console,經過大量查看並收到相同的錯誤后,我又回到了Google上的Awareness API開發者控制台並實現我的Awareness API沒有啟用,即使我有包裝並擁有有效的API密鑰。 還要確保在Manifest中設置了API密鑰。 希望這有助於某人。

我掙扎了差不多一天,找到了另一個答案。 雖然當時接受的答案是正確的。

我唯一能幫助我在Google Developer Console上使用調試密鑰庫生成API密鑰以進行測試,並在投入生產時將其替換為發布密鑰庫。

如何生成API密鑰? 在這里查看谷歌的單詞

希望它將來有助於某人。

暫無
暫無

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

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