android 图标错误的是什么,android – FCM默认图标使用无效渐变

更新:由版本12.0.0中的firebase修复

下面的错误代码已经使用此更新,它在8.0上运行良好,同时防止我原来的答案中列出的错误.

@TargetApi(26)

private final boolean zza(int var1) {

if(VERSION.SDK_INT != 26) {

return true;

} else {

try {

if(this.zzb.getResources().getDrawable(var1, (Theme)null) instanceof AdaptiveIconDrawable) {

Log.e("FirebaseMessaging", (new StringBuilder(77)).append("Adaptive icons cannot be used in notifications. Ignoring icon id: ").append(var1).toString());

return false;

} else {

return true;

}

} catch (NotFoundException var2) {

return false;

}

}

}

这并没有解决问题,但从评论中我被要求作为答案.以下是来自firebase 11.8.0的代码,它是罪魁祸首,仅适用于Android 8.0(API 26).检查的原因是因为自适应图标https://www.bleepingcomputer.com/news/mobile/android-oreo-adaptive-icons-bug-sends-thousands-of-phones-into-infinite-boot-loops/存在Android 8.0通知错误,因此此代码可以防止这种情况,但这样做也会阻止非自适应图标正常显示

@TargetApi(26)

private final boolean zzid(int var1) {

if(VERSION.SDK_INT != 26) {

return true;

} else {

try {

Drawable var2;

if((var2 = this.mContext.getResources().getDrawable(var1, (Theme)null)).getBounds().height() != 0 && var2.getBounds().width() != 0) {

return true;

} else {

Log.e("FirebaseMessaging", (new StringBuilder(72)).append("Icon with id: ").append(var1).append(" uses an invalid gradient. Using fallback icon.").toString());

return false;

}

} catch (NotFoundException var3) {

return false;

}

}

}

我在我的logcat中注意到,我的应用程序每次通知都会触发此代码两次,它会尝试我的通知drawable,我根据Firebase的说明在清单中设置,然后再次点击它尝试为启动器图标执行此操作.两者都失败了,即使我将它们制作成纯色的drawables.

根据来自southrop的另一条评论,firebase团队意识到了这个问题并正在努力修复,但没有给出时间表.

此代码不在11.6.0及更低版本中,因此如果您确实需要暂时使用此代码,请降级您的firebase.

希望这有助于找到此帖子的其他人搜索错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值