Android - 仅在Android 2.3上发布错误通知

时间:2012-10-11 15:24:27

标签: android notifications android-notifications android-2.3-gingerbread

我在显示通知时收到有关Android 2.3崩溃的报告。 我的堆栈跟踪是:

android.app.RemoteServiceException: Bad notification posted from package com.megadevs.hubi: Couldn't expand RemoteViews for: StatusBarNotification(package=com.megadevs.hubi id=1 tag=null notification=Notification(vibrate=null,sound=null,defaults=0x0,flags=0x62))
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1048)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3687)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
    at dalvik.system.NativeStart.main(Native Method)

我读过Android 2.3与AnimatedImageView存在一些问题,但我不认为我正在使用它... 我为显示通知而运行的代码是:

NotificationCompat2.Builder builder = new NotificationCompat2.Builder(getApplicationContext());
notification = builder.setOngoing(true)
    .setAutoCancel(false)
    .setPriority(NotificationCompat2.PRIORITY_DEFAULT)
    .setSmallIcon(notificationSmallIcon)
    .setWhen(System.currentTimeMillis())
    .setContentIntent(notificationIntent)
    .setContentTitle(downloads.elements().nextElement().getFileName())
    .setProgress(100, (int) downloadable.getDownload().getProgress(), false)
    .build();
startForeground(DL_NOTIFICATION, notification);

更新
我发现当我尝试更新以startForeground()开头的通知时出现问题,我运行的代码是:

notification.contentView.setProgressBar(android.R.id.progress, 100, (int) download.getProgress(), false);
mNotificationManager.notify(DL_NOTIFICATION, notification);

但是它在ICS和JB上运行正常,那为什么它会给Ginger带来问题呢?

2 个答案:

答案 0 :(得分:2)

请勿直接引用通知,因为您正在使用NotificationBuilder来创建通知对象。

卸下:

 notification.contentView.setProgressBar(android.R.id.progress, 100, (int) download.getProgress(), false);

添加:

 builder.setProgress(int max, int progress, boolean indeterminate)

此外,您似乎正在使用自定义通知布局,请参阅文档如何与构建器一起使用 http://developer.android.com/guide/topics/ui/notifiers/notifications.html

答案 1 :(得分:0)

你看到像android.view.InflateException这样的东西吗?另外请检查您通知的地方是什么?你能确保png文件存在于drawable文件夹中吗?不只是在drawable-mdpi等?

运行应用程序时是否可以发布完整的日志。