7

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) に影響します。これらのデバイスはルート化されておらず、ストック ROM で動作しているように見えます。この問題は、ユーザーの 10% に発生します。

正しい API キーを使用していると確信しています。そうしないと、自分のデバイスでクラッシュを確認できますか?

誰かが同じ問題に直面しましたか?

4

4 に答える 4

5

実際のエラーは別のものであるにもかかわらず、ネットワーク操作からアプリを認証するための一部のエラーを、API キーが正しく設定されていないことを示していると誤って誤認するバグがあります。これは内部で修正されており、次の Google Play サービス リリースで展開される予定です。

今のところ、最善の回避策は、GoogleApiClient.connect() を呼び出すスレッドに UncaughtExceptionHandler を追加することです。メインスレッドで GoogleApiClient.connect() を呼び出すと、Looper.myLooper().getThread() を介して Thread インスタンスを取得できます。

于 2016-10-14T23:18:20.427 に答える