+-
android – FCM默认图标使用无效渐变
未使用 Android清单的默认FCM图标.而是使用Android标准图标.
在logcat中它说:

E/FirebaseMessaging: Icon with id: 2131230849 uses an invalid gradient. Using fallback icon.

默认图标仅包含一种颜色.我用多个不同的图标测试了它,但总是使用Android标准图标.

最佳答案
更新:由版本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.

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

点击查看更多相关文章

转载注明原文:android – FCM默认图标使用无效渐变 - 乐贴网