我在下面的堆栈跟踪中遇到了很多异常。 适用于Android< 5.0它工作正常。
我从我的LED通知应用程序LED Blinker中得到错误。 https://play.google.com/store/apps/details?id=com.ledblinker 我发布没有图标的通知。我不知道如何重现它,但我收到了很多崩溃报告。
有什么建议吗?
ANDROID_VERSION=5.0
PHONE_MODEL=Nexus 5
BUILD=BOARD=hammerhead
BOOTLOADER=HHZ12d
BRAND=google
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=hammerhead
DISPLAY=LRX21O
FINGERPRINT=google/hammerhead/hammerhead:5.0/LRX21O/1570415:user/release-keys
HARDWARE=hammerhead
ID=LRX21O
MANUFACTURER=LGE
MODEL=Nexus 5
PRODUCT=hammerhead
RADIO=unknown
SUPPORTED_32_BIT_ABIS=[Ljava.lang.String;@2b1c12b
SUPPORTED_64_BIT_ABIS=[Ljava.lang.String;@20cc8988
SUPPORTED_ABIS=[Ljava.lang.String;@302e2f21
TAGS=release-keys
TYPE=user
UNKNOWN=unknown
USER=android-build
IS_DEBUGGABLE=false
TIME=1415320210000
VERSION.ACTIVE_CODENAMES=[Ljava.lang.String;@2a8c4f46
VERSION.CODENAME=REL
VERSION.INCREMENTAL=1570415
VERSION.RELEASE=5.0
VERSION.SDK=21
VERSION.RESOURCES_SDK_INT=21
VERSION.SDK_INT=21
USER_APP_START_DATE=2014-12-08T05:50:24.000+01:00
USER_CRASH_DATE=2014-12-08T07:32:05.000+01:00
CUSTOM_DATA=
STACK_TRACE=android.app.RemoteServiceException: Bad notification posted from package com.ledblinker: Couldn't create icon: StatusBarIcon(pkg=com.ledblinkeruser=0 id=0x0 level=0 visible=true num=0 )
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1441)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
一切正常,但有时会发生此错误。
以下是导致它的代码:
Notification resetNoti = new Notification();
resetNoti.ledARGB = Color.RED;
resetNoti.ledOffMS = 0;
resetNoti.ledOnMS = 1;
resetNoti.flags = Notification.FLAG_SHOW_LIGHTS;
答案 0 :(得分:0)
尝试使用NotificationCompat.Builder类来创建通知。它允许新的通知设计(包括可扩展通知的大文本),支持旧的通知风格。 然后,您可以使用setLights设置通知颜色。您还需要一个Notification对象,您可以使用getNotification()从构建器对象获取该对象。
NotificationCompat.Builder notify = new NotificationCompat.Builder(context);
notify.setLights(Color.argb(255, 255, 0, 0), 5000, 5000);
notify.setSmallIcon(R.drawable.ic_stat_kw);
notify.setContentTitle("Title");
notify.setContentText("Text");
Intent showIntent = new Intent(context, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, showIntent, 0);
notify.setContentIntent(contentIntent);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notify.getNotification());
希望这会有所帮助..
答案 1 :(得分:-1)
这是图标问题,棒棒糖不支持通知内的 XML 图标或矢量。您必须使用 PNG 图标进行通知。
另一个问题可能是图标资源文件不匹配,如果清单文件元数据中包含有关推送通知图标的任何信息,那么它必须与通知生成器 setSmallIcon()
中使用的文件相同。