RemoteServiceException使我的应用程序在MIUI 11上崩溃



我开始收到来自运行Android 11的MIUI 11设备的奇怪崩溃(到目前为止只有Mi 10和Mi 10 lite 5G(。我认为这是一个平台问题,在我的应用程序中没有任何问题,因为它是小米安卓11的超级专用。

Fatal Exception: android.app.RemoteServiceException
Bad notification(tag=null, id=3249) posted from package de.crysxd.octoapp, crashing app(uid=10334, pid=23788): Couldn't inflate contentViewsjava.lang.NullPointerException: Attempt to invoke virtual method 'android.app.Notification$MessagingStyle android.app.Notification$MessagingStyle.setConversationType(int)' on a null object reference

我知道,如果你在旧设备上使用SVG图标,也会发生类似的崩溃,但我已经使用了PNG。设备只显示两种类型的通知,一种是前台服务,另一种来自Firebase。从崩溃的时间来看,这似乎不太可能是Firebase的通知。

这是我用来创建通知的代码(这里是完整的(:

private fun createProgressNotification(progress: Int, title: String, status: String) = createNotificationBuilder()
.setContentTitle(title)
.setContentText(status)
.setProgress(maxProgress, progress, false)
.setOngoing(true)
.addCloseAction()
.setNotificationSilent()
.build()
private fun createCompletedNotification(name: String?) = createNotificationBuilder()
.setContentTitle(getString(R.string.notification_print_done_title))
.apply {
name?.let {
setContentText(it)
}
}
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.build()
private fun createDisconnectedNotification() = createNotificationBuilder()
.setContentTitle(getString(R.string.notification_printing_lost_connection_message))
.setContentText(lastEta)
.setProgress(maxProgress, 0, true)
.addCloseAction()
.setOngoing(false)
.setNotificationSilent()
.build()
private fun createInitialNotification() = createNotificationBuilder()
.setContentTitle(getString(R.string.notification_printing_title))
.setProgress(maxProgress, 0, true)
.setOngoing(true)
.addCloseAction()
.setNotificationSilent()
.build()
private fun createNotificationBuilder() = NotificationCompat.Builder(this, notificationChannelId)
.setColorized(true)
.setColor(ContextCompat.getColor(this, R.color.primary_light))
.setSmallIcon(R.drawable.ic_notification_default)
.setContentIntent(createStartAppPendingIntent())

有人有同样的问题或知道解决方案吗?

我之前的答案是隐藏的。将系统更新到MIUI 12.2.7,然后发生崩溃。我的应用程序中每秒都会有更新通知,只有在应用程序持续运行一段时间后才会出现崩溃。

查看错误,应用程序因空指针异常而崩溃。

Fatal Exception: android.app.RemoteServiceException
Bad notification(tag=null, id=3249) posted from package de.crysxd.octoapp, crashing app(uid=10334, pid=23788): 
Couldn't inflate contentViewsjava.lang.NullPointerException: Attempt to invoke virtual method 'android.app.Notification$MessagingStyle android.app.Notification$MessagingStyle.setConversationType(int)' 
on a null object reference

我建议您使用Log类来找出错误发生在哪一行。

现在,您可以将通知代码封装在try... catch块中,并将错误记录在catch块中。这将防止你的应用程序崩溃,这更好。

这种方法将帮助你更好地理解问题并解决它,或者至少使它在一些有限的功能下工作,这比崩溃应用程序要好。

相关内容

  • 没有找到相关文章

最新更新