![](/img/trans.png)
[英]Google Awareness Snapshot.getLocation SecurityException is thrown
[英]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.