Gran cantidad de RemoteServiceExceptions en el reparto MediaNotificationService de Google

10

En las últimas ~ 24 horas, hemos visto algunos miles de bloqueos en Google MediaNotificationService:

Fatal Exception: android.app.RemoteServiceException
    Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{f9a4deb u0 <our package name>/com.google.android.gms.cast.framework.media.MediaNotificationService}
    android.app.ActivityThread$H.handleMessage (ActivityThread.java:1855)
    android.os.Handler.dispatchMessage (Handler.java:106)
    android.os.Looper.loop (Looper.java:214)
    android.app.ActivityThread.main (ActivityThread.java:6986)
    java.lang.reflect.Method.invoke (Method.java)
    com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
    com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1445)

Experimenté problemas similares al crear mi propio servicio en primer plano, pero como esto está dentro de la biblioteca de reparto, no tenemos control sobre él.

El receptor Chromecast es manejado por un tercero. Estamos usando:

api "com.google.android.gms:play-services-cast:17.0.0"
api "com.google.android.gms:play-services-cast-framework:17.0.0"

Posibles pistas:

  • Está sucediendo en OnePlus, Huawei, Samsung, Google, aparentemente todos los fabricantes (y nivel de sistema operativo) en números que se correlacionan con su participación en el mercado.
  • Los bloqueos se producen en diferentes líneas para diferentes dispositivos (por ejemplo, el anterior es el Galaxy S9, el S8 se bloquea en la línea 1872), por lo que no se agrupan en Crashlytics. Esto me sugiere que es un problema de nivel de OS / Google Play Services.
  • Los bloqueos ocurren en todas las versiones activas de la aplicación, comenzando al mismo tiempo.
  • Los accidentes han estado ocurriendo en cantidades bajas durante meses, pero de repente se dispararon durante el fin de semana y no muestran signos de desaceleración.
JakeSteam
fuente
2
El mismo problema nos está sucediendo a nosotros también en estos días, nuestra versión de marco de reparto es 17.1.0
cylon
@cylon Descubrimos que Chrome v80 se lanzó a estable justo antes de que comenzaran nuestros bloqueos. ¿Quizás eso de alguna manera interfirió con las aplicaciones del receptor?
JakeSteam
¿Alguien ha encontrado alguna solución todavía?
casolorz

Respuestas:

5

Parece un problema conocido :

El problema ocurrió solo en dispositivos HUAWEI con Android 9: P20 pro, P30 pro, P20 lite, P30, P20, Honor View 10, Mate 20 pro

Versión del SDK de Cast: Android Sender 16.2.0 (revisé las notas de la versión de Android Sender 17.1.0 pero no solucioné ningún error)

Aquí está el registro de fallas de la tela:

Fatal Exception: android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{3ac0035 u0 com.google.android.gms.cast.framework.media.MediaNotificationService}
       at android.app.ActivityThread$H.handleMessage + 2126(ActivityThread.java:2126)
       at android.os.Handler.dispatchMessage + 112(Handler.java:112)
       at android.os.Looper.loop + 216(Looper.java:216)
       at android.app.ActivityThread.main + 7625(ActivityThread.java:7625)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run + 524(RuntimeInit.java:524)
       at com.android.internal.os.ZygoteInit.main + 987(ZygoteInit.java:987)

que un ingeniero de Google dice que es fijo :

Tenemos una solución para esto y eso debería ser lanzado por la próxima versión de la biblioteca del cliente Android Cast.

pero no saben cuándo se lanzará la solución :

Hasta ahora no tenemos una fecha sólida cuando se programará el próximo lanzamiento. Lo actualizaremos aquí o verifique aquí https://developers.google.com/cast/docs/release-notes

Las notas de la versión no mencionan una solución para esto.

Actualizaré esta respuesta si encuentro algo más.

Actualizar

Esto está arreglado. Ver Anjaneeshla respuesta .

Actualizar

Hay algunos problemas con 18.0.0. Ver rednazla respuesta . Además, los comentaristas sobre el tema aún experimentan fallas con las plataformas Samsung y Huawei , pero a tasas muy reducidas. Presenté un nuevo problema sobre esto.

Heath Borders
fuente
1
Respuesta muy completa, gracias. Intentará y actualizará el SDK. Aún así resulta realmente extraño cómo el problema puede ocurrir repentinamente después de años en 17.X.
JakeSteam
1
Respuesta de nuestro contacto técnico en Google: "La solución para el error de bloqueo está en la biblioteca del cliente Android Cast SDK v18.0.0, si la actualiza, debería solucionarlo". ¡Por supuesto que introduce nuevos problemas !
JakeSteam
Este problema todavía ocurre en v18.0.0 y principalmente en dispositivos Huawei con Android 9. ¿Alguna otra solución?
Pabi Moloi
1

También estamos experimentando este problema con síntomas muy similares. Estamos en Cast SDK versión 16.1.2

  • Solo sucede en Android 8 y superior. Parece estar vinculado a los cambios de ejecución en segundo plano aquí
  • También números bajos por meses. Se agregó recientemente en todas las versiones de la aplicación. Ahora mirando los números en miles.
  • Hubo una actualización de los servicios de reproducción el 11 de febrero. ¿Se podría vincular?

Lo que hemos probado (Actualización al SDK 18.0.0)

La actualización a v18.0.0 parece solucionar el problema según lo informado por @Anjaneesh . Sin embargo, 18.0.0 introdujo cambios de comportamiento en torno a la recuperación de datos personalizados. Hemos observado que los datos personalizados que suministramos a mediaInfo del RemoteMediaClient (y luego intentamos recuperarlos) se anulan cuando la aplicación del remitente se desconecta y luego se vuelve a conectar. ¡Esto deberá protegerse si aún no lo ha hecho!

rednaz
fuente