android.app.RemoteServiceException:在android.app.ActivityThread $ H.handleMessage发送通知时

时间:2017-05-30 15:39:17

标签: java android push-notification notifications android-notifications

我使用服务来显示通知。在一些罕见的设备上(每天5万用户中有3个),我发生了以下崩溃(可以在Google Play开发者控制台中看到;仅在Android 4.x设备上):

android.app.RemoteServiceException: 
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
  at android.os.Handler.dispatchMessage(Handler.java:110)
  at android.os.Looper.loop(Looper.java:193)
  at android.app.ActivityThread.main(ActivityThread.java:5327)
  at java.lang.reflect.Method.invokeNative(Native Method:0)
  at java.lang.reflect.Method.invoke(Method.java:515)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
  at dalvik.system.NativeStart.main(Native Method:0)

我的通知是使用这样的代码制作的(旧式通知,在Android 6+中已弃用,但无论如何都有效;该错误发生在Android 4.x上,代码不会弃用):

Notification notification = new Notification(icon, "Custom Notification", when);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification);
contentView.setImageViewResource(R.id.notifWeatherImageView, WeatherRowTools.getImageForWeatherCode(weatherCodeString));

....some stuff here...

notification.contentView = contentView;
notification.contentIntent = contentIntent;
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.defaults = 0;
mNotificationManager.notify(1, notification);

关于如何解决这个问题的任何想法?

非常感谢!!!

2 个答案:

答案 0 :(得分:1)

我在构建中看到类似的问题 - 只有Kitkat设备大量抛出这些 - Android OS版本:4.4.4,4.4.2,4.2.2,4.0.4

我们通过更改通知使用的可绘制来解决类似的问题。

.addAction(R.drawable.ic_forward_black_24dp, VIEW_ACTION, pendingIntentView);

我们停止使用Vector Assets并开始使用Image Assets。

R.drawable.ic_forward_black_24dp不再使用 xml 文件(Vector Asset),而是使用 png 文件(图片资源)。

答案 1 :(得分:0)

检查this。即使您没有使用与链接答案中相同的SDK,您的问题可能仍然有相同的原因。