【遇见Android bug】java.lang.IllegalArgumentException: contentView required: pkg=com.sinvideo.joyshow id

本文解决了一个关于Android应用中通知无法显示的问题,通过为通知添加点击事件解决了IllegalArgumentException异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

09-11 15:54:28.800: E/AndroidRuntime(24863): FATAL EXCEPTION: main
09-11 15:54:28.800: E/AndroidRuntime(24863): Process: com.sinvideo.joyshow, PID: 24863
09-11 15:54:28.800: E/AndroidRuntime(24863): java.lang.IllegalArgumentException: contentView required: pkg=com.sinvideo.joyshow id=1000 notification=Notification(pri=0 contentView=null vibrate=null sound=null defaults=0x4 flags=0x0 kind=[null])
09-11 15:54:28.800: E/AndroidRuntime(24863): at android.os.Parcel.readException(Parcel.java:1472)
09-11 15:54:28.800: E/AndroidRuntime(24863): at android.os.Parcel.readException(Parcel.java:1422)
09-11 15:54:28.800: E/AndroidRuntime(24863): at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:320)
09-11 15:54:28.800: E/AndroidRuntime(24863): at android.app.NotificationManager.notify(NotificationManager.java:136)
09-11 15:54:28.800: E/AndroidRuntime(24863): at android.app.NotificationManager.notify(NotificationManager.java:109)
09-11 15:54:28.800: E/AndroidRuntime(24863): at com.sinvideo.joyshow.view.SplashActivity$3$1.run(SplashActivity.java:193)
09-11 15:54:28.800: E/AndroidRuntime(24863): at android.os.Handler.handleCallback(Handler.java:733)
09-11 15:54:28.800: E/AndroidRuntime(24863): at android.os.Handler.dispatchMessage(Handler.java:95)
09-11 15:54:28.800: E/AndroidRuntime(24863): at android.os.Looper.loop(Looper.java:136)
09-11 15:54:28.800: E/AndroidRuntime(24863): at android.app.ActivityThread.main(ActivityThread.java:5262)
09-11 15:54:28.800: E/AndroidRuntime(24863): at java.lang.reflect.Method.invokeNative(Native Method)
09-11 15:54:28.800: E/AndroidRuntime(24863): at java.lang.reflect.Method.invoke(Method.java:515)
09-11 15:54:28.800: E/AndroidRuntime(24863): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:851) 
09-11 15:54:28.800: E/AndroidRuntime(24863): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:667)

09-11 15:54:28.800: E/AndroidRuntime(24863): at dalvik.system.NativeStart.main(Native Method)



这个我原本的代码,想要解决这个问题,只需要给notification添加一个事件setLatestEventInfo。     

NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification notify = new Notification();
notify.icon = R.drawable.ic_launcher;
notify.tickerText = "点击下载最新App";
notify.when = System.currentTimeMillis();
notify.defaults = Notification.DEFAULT_LIGHTS;
notify.flags = Notification.FLAG_AUTO_CANCEL;

nm.notify(notificationId, notify);

instance.put("activeUpdateShouldShow", false);

解决方案如下:

Intent intent = new Intent(ctx, UpdateService.class);
intent.putExtra("apkUrl", apkurl);
PendingIntent pendIntent = PendingIntent.getService(ctx, 0, intent, 0);

notify.setLatestEventInfo(ctx, "AAAAA", "BBBBBBB", pendIntent);

但是setLatestEventInfo方法是一个过时的方法,至于用什么方式替代还有待研究



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值