我们有很多专门针对小米手机在Android 6和7上的崩溃:
Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package x.y.z: Couldn't create icon: StatusBarIcon(icon=Icon(typ=RESOURCE pkg=x.y.z id=0x7f0200ad) visible user=0 )
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1715)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6358)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:880)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)
我在网上找到了很多类似的坠机报道和文章。这里有几个:
如何修复:Android.app.RemoteServiceException:从包发布的错误通知*:无法创建图标:StatusBarIcon
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, NOTIFICATION_CHANNEL_NAME, importance);
notificationChannel.enableLights(true);
notificationManager.createNotificationChannel(notificationChannel);
}
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID)
.setSmallIcon(R.drawable.ic_notification)
.setPriority(NotificationCompat.PRIORITY_MAX)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
.setContentText(body == null ? "" : body)
.setAutoCancel(true)
.setContentIntent(PendingIntent.getActivity(
context,
0,
pendingIntent,
PendingIntent.FLAG_UPDATE_CURRENT
));
编辑:我找不到解决方法,但这里有几个新的想法:
>
我们发布了新版本,但将小米用户排除在通知之外也于事无补!现在我认为问题是由ActivityThread.java中的自定义代码引起的。MIUI可能会在某个事件中从这里发出通知。这里的Android系统中有几十个事件,但没有一个会发出通知。但是我们的图标出了问题,所以它们崩溃了。
但我们的图标出了什么问题?我们有一个ic_notification,它可能不用于此。另一方面,ic_launcher是一个mipmap。也许是这个?但是我找不到任何关于小米和MipMaps的问题。
https://xiami.eu/community/threads/miui-9.47247/
https://pl.forum.elvenar.com/index.php?threads/problem-z-uruchomieniem-23566.3348/
就在1.1.13版本之后,他们删除了对小米的默认支持,你必须使用上面链接中的通知。
有没有其他受影响的人用过这个?
我和一个用户有同样的问题。我相信它是由下面的代码引起的--从一个APK反编译我没有源代码,它是从shortcutbadger
resolveInfo.geticonResource()返回了一个无效的资源ID(0x7F0200AD,所有应用程序都一样,看起来好像只有在MIUI10上)因此崩溃。
iget-object v1, p0, Lme/leolin/shortcutbadger/impl/XiaomiHomeBadger;->a:Landroid/content/pm/ResolveInfo;
invoke-virtual/range {v1 .. v1}, Landroid/content/pm/ResolveInfo;->getIconResource()I
move-result v1
invoke-virtual {p1, v1}, Landroid/app/Notification$Builder;->setSmallIcon(I)Landroid/app/Notification$Builder;
作为用户,一个简单解决方法是完全禁用应用程序的通知--至少使其可用。
builder.setSmallIcon(R.drawable.myicon);
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
private void tryNewMiuiBadge(Context context, int badgeCount) throws ShortcutBadgeException {
if (resolveInfo == null) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
resolveInfo = context.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
}
if (resolveInfo != null) {
NotificationManager mNotificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(context)
.setContentTitle("")
.setContentText("")
.setSmallIcon(resolveInfo.getIconResource());
Notification notification = builder.build();
<public type="drawable" name="icon_launcher" id="0x7f0200ad" />
代码: 错误: 我该怎么解决这个问题?
我用图表。js(版本:2.7.2)和结果行中的一些标签相当长 我得到的图表是我所需要的,https://imgur.com/a/n1SsW7w,但任何酒吧的标签都很长,看起来不太好,我不知道是否有办法解决这个问题?为什么标签有大的边距,而不是相对的条? xAxes 或附加图例的一些选项? 谢谢
我想用python绘制一个非常简单的直方图。这是我的代码: 这就是结果 我怎样才能把这些条放在整数的地方呢?为什么我的图表也显示浮点数?
我在崩溃日志中看到以下异常: 我反复检查了传递的资源ID是否都是正确的。
根据android iconography文档,状态栏中的图标应该是完全白色的,背景是透明的。然而,即使是内置的图标似乎也不都遵循这种模式。信号质量(适用于wifi和电池)、电池指示器和其他一些新设备上的图标上有全息蓝色背景。这个颜色是不是内置在图标本身?我正在寻找实现一个状态栏图标与我的应用程序,将表明一个连接到外部(蓝牙)设备的状态。我计划做我的公司徽标(它是一个相当简单的,大部分是圆形的形状
我无法修复Eclipse中的这个错误。是引进项目。除了这个错误之外,其他一切都很好: