启用proguard时,android通知图标不同

启用proguard时,android通知图标不同,android,push-notification,proguard,android-proguard,Android,Push Notification,Proguard,Android Proguard,我目前有一个android应用程序(react native),它使用Mixpanel的推送服务(在Firebase消息服务之上) 我在清单文件中指定了一个图标,并引用了由android studio生成的一组图像文件(存储在drawable中) 当我使用调试变量(proguard未启用)运行应用程序,并远程发送推送以触发通知时,状态栏中会显示正确的图标,然后在下拉通知托盘时,标题旁边会显示正确的图标 当我使用版本变体(proguard已启用)构建应用程序时,当发送推送时,会显示通知,但顶部托盘

我目前有一个android应用程序(react native),它使用Mixpanel的推送服务(在Firebase消息服务之上)

我在清单文件中指定了一个图标,并引用了由android studio生成的一组图像文件(存储在drawable中)

当我使用调试变量(proguard未启用)运行应用程序,并远程发送推送以触发通知时,状态栏中会显示正确的图标,然后在下拉通知托盘时,标题旁边会显示正确的图标

当我使用版本变体(proguard已启用)构建应用程序时,当发送推送时,会显示通知,但顶部托盘中的图标会返回到我的启动器图标。当我向下拉动托盘时,只能看到一个没有图标的红色圆圈

这两项测试都是在API级别为28(O)的Android设备上进行的

Android清单:

    <application
      ...
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
    />

        <meta-data
            android:name="com.google.firebase.messaging.default_notification_icon"
            android:resource="@drawable/my_notification" />

        <meta-data android:name="com.google.firebase.messaging.default_notification_color"
            android:resource="@color/my_red" />

我在proguard文件中添加了以下内容,以确保notification builder和mixpanel类可以正确触发通知。如上所述,通知将出现:

-keep class com.mixpanel.android.mpmetrics.** { *; }
-keep class com.google.android.gms.** { *; }
-keep class android.support.v4.app.** { *; }
我已经分析了使用AndroidStudio生成的版本APK,可以确认drawable中存在drawable资产(查看resources.arsc时)


在这一点上,我感到非常困惑,任何帮助都将不胜感激。

终于找到了问题所在

Proguard正在删除mixpanel SDK用于加载通知资产的资源类

添加

-keep class **.R$* { *; }
我的前卫解决了这个问题 根据mixpanel SDK中代码注释中的说明,请参见:


终于找到了问题所在

Proguard正在删除mixpanel SDK用于加载通知资产的资源类

添加

-keep class **.R$* { *; }
我的前卫解决了这个问题 根据mixpanel SDK中代码注释中的说明,请参见:


您使用的是什么版本的Firebase消息库?您使用的是什么版本的Firebase消息库?