Google的MediaNotificationService中有大量RemoteServiceExceptions


10

在过去的大约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,华为,三星,谷歌上发生,似乎每个制造商(和操作系统级别)的数量都与其市场份额相关。
  • 崩溃发生在不同设备的不同线路上(例如,上面是Galaxy S9,S8崩溃是在1872行),因此不在Crashlytics上分组。在我看来,这是操作系统/ Google Play服务级别的问题。
  • 崩溃同时发生在应用程序的所有活动版本中。
  • 坠机事故数月以来一直没有发生,但在周末突然飙升,并且没有放缓的迹象。

2
这些天我们也发生了同样的问题,我们的强制转换框架版本是17.1.0
cylon

@cylon我们发现Chrome v80在崩溃开始之前已发布到稳定版本。也许这以某种方式干扰了接收器应用程序?
JakeSteam

有人找到任何修复程序了吗?
casolorz

Answers:


5

它看起来像一个已知问题

仅在配备Android 9的HUAWEI设备上出现问题:P20 pro,P30 pro,P20 lite,P30,P20,Honor View 10,Mate 20 pro

Cast SDK版本:Android Sender 16.2.0(我检查了Android Sender 17.1.0的发行说明,但未修复错误)

这是来自fabric的崩溃日志:

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)

谷歌的工程师,他说是固定的

我们已经对此进行了修复,应该在下一个Android Cast客户端库版本中发布。

他们不知道何时发布此修复程序

到目前为止,我们还没有确定下一个版本的发布日期。我们将在此处进行更新,否则请在此处进行检查https://developers.google.com/cast/docs/release-notes

发行说明没有提到此修复程序。

如果发现更多内容,我将更新此答案。

更新资料

这是固定的。见Anjaneesh的答案

更新资料

有一些问题18.0.0。见rednaz的答案。同样,对此问题的评论者仍在与三星华为平台发生崩溃,但速度大大降低。我对此提出了新的问题


1
非常全面的答案,谢谢。将尝试更新SDK。仍然感到奇怪的是,在17.X上运行数年后,该问题突然发生的情况。
JakeSteam

1
来自Google的技术联系人的回复:“崩溃错误的修复程序已在Android Cast SDK客户端库v18.0.0中进行了升级,如果您对其进行升级,则可以对其进行修复。” 当然,这会带来新的问题
JakeSteam

这个问题在v18.0.0上仍然仍然存在,并且主要在运行Android 9的华为设备上发生。还有其他解决方案吗?
Pabi Moloi


1

我们也遇到了非常相似的症状此问题。我们正在使用Cast SDK版本16.1.2

  • 仅在Android 8及更高版本上发生。似乎被链接到后台执行改变这里
  • 数月来也很低。最近在所有应用程序版本中均增加。现在看着成千上万的数字。
  • 2月11日有一个播放服务更新。可以链接吗?

我们尝试了什么(更新到SDK 18.0.0)

更新到v18.0.0似乎可以解决@Anjaneesh报告的问题。但是,18.0.0引入了有关自定义数据检索的行为更改。我们注意到,当发送方应用程序断开连接然后重新连接时,我们提供给remoteMediaClient的mediaInfo(然后尝试检索)的自定义数据将为空。如果您还没有的话,这需要小心!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.