Se lanza la excepción SecurityException de Google Awareness API

Estoy usando DetectedActivityFence desde Google Awareness API . Está funcionando bien en mis propios dispositivos, pero he recibido varios fallos en Crashlytics sobre 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) 

Esto sucedió sin ninguna correlación entre las versiones de Android, es decir, afecta a dispositivos de diferentes fabricantes y diferentes versiones de Android (5.x-6.x). Estos dispositivos no están enraizados y parecen trabajar en Stock ROM. Este problema aparece para el 10% de mis usuarios.

Estoy seguro de que estoy usando la clave de API correcta, de lo contrario puedo ver el bloqueo en mi propio dispositivo, ¿puedo?

¿Alguien se enfrentó al mismo problema?

Hay un error que equivoca erróneamente algunos errores de la operación de red para autenticar la aplicación como indicando que la clave de API no se configuró correctamente, aunque el error real era otra cosa. Esto se ha corregido internamente y se extenderá en la próxima versión de servicios de Google Play.

Por ahora, la mejor solución es agregar un UncaughtExceptionHandler en el subproceso que llama a GoogleApiClient.connect (). Si llama a GoogleApiClient.connect () en el subproceso principal, puede obtener la instancia de subproceso a través de Looper.myLooper (). GetThread ().

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

Hay un error en nuestras comprobaciones que a veces está lanzando esta excepción de seguridad cuando hay un error de red para autenticar. La revisión se desplegará en la próxima versión de los servicios de Google Play.

Por ahora, la mejor solución sería configurar un UncaughtExceptionHandler en el hilo que llamas GoogleApiClient.connect (). Para la mayoría de la gente, esto sería en el hilo principal, que se puede obtener a través de Looper.myLooper (). GetThread ().

Pero también se dará cuenta de que las respuestas indican que no es un trabajo sólido alrededor.

También puede notar que el OP de ese hilo hace referencia a este post SO, pero la respuesta aceptada no hace referencia al hilo, aunque copió de él textualmente. Muy mala forma!

Me encontré con este problema, ya que estaba recibiendo el mismo error, y pensé que podría ser el conocimiento de las claves de la API no se sincronizan con la Consola para desarrolladores de Google, después de mucho buscar y obtener el mismo error, volví a la conciencia API en Google Developer Console y me di cuenta de que mi API de sensibilización no estaba habilitada, aunque tenía el conjunto de paquetes y tenía una clave de API válida. También asegúrese de que la clave de la API está establecida en su Manifiesto. Espero que esto ayude a alguien.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.