web-dev-qa-db-ja.com

GoogleのキャストMediaNotificationServiceに多数のRemoteServiceExceptions

過去24時間以内に、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)

自分のフォアグラウンドサービスを作成するときに同様の問題が発生しましたが、これはキャストライブラリ内にあるため、制御できません。

Chromecastレシーバーはサードパーティによって処理されます。私たちは使用しています:

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

潜在的な手がかり:

  • それは、OnePlus、Huawei、Samsung、Googleで起こっているようです。一見すると、すべてのメーカー(およびOSレベル)は、市場シェアと相関関係にあります。
  • クラッシュはさまざまなデバイスのさまざまなラインで発生しています(たとえば、上記はGalaxy S9で、代わりにS8はライン1872でクラッシュします)。Crashlyticsではグループ化されていません。これは、OSまたはGoogle Play開発者サービスレベルの問題であることを示唆しています。
  • クラッシュは、アプリのすべてのアクティブなバージョンで同時に発生します。
  • クラッシュは数か月間発生し続けていますが、週末に急増し、減速の兆候は見られません。

[〜#〜] update [〜#〜]:最終的にこれを再現することができました。画面がロックされている状態で長時間コンテンツをキャストし、その後デバイスから切断すると、クラッシュが発生します。たぶん、解決策に一歩近づく...

10
JakeSteam

また、この問題は非常に似た症状で発生しています。キャストSDKバージョン16.1.2を使用しています

  • Android 8以上でのみ発生します。バックグラウンド実行の変更にリンクされているようです here
  • また、月の数が少ない。最近、すべてのアプリバージョンで急上昇しています。数千の数字を見てみましょう。
  • 2月11日にPlayサービスのアップデートがありました。リンクできますか?

私たちが試したこと(SDK 18.0.0への更新)

@ Anjaneesh によって報告されているように、v18.0.0に更新すると問題が解決するようです。ただし、18.0.0では、カスタムデータの取得に関する動作の変更が導入されました。 remoteMediaClient's mediaInfo (そして、取得しようとする)に提供するカスタムデータが、送信側アプリが切断してから再接続するとnullになることを確認しました。まだの場合は、これを防ぐ必要があります。

1
rednaz