You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成FCM时Release构建报错:找不到AdaptiveIconDrawable类

解决FCM Release构建时找不到AdaptiveIconDrawable的报错

嘿,这个问题我之前帮人排查过,其实根源很清晰:android.graphics.drawable.AdaptiveIconDrawable是Android 8.0(API级别26)才新增的类,你的Debug构建能正常跑是因为Debug模式通常没开启代码压缩(minify),但Release模式开启后,混淆工具尝试解析FCM库中的相关代码时,就会因为找不到这个高版本API类而报错。

下面给你两个可行的解决办法,选适合你项目的就行:

方法一:升级targetSdkVersion到26及以上

如果你的项目可以兼容Android 8.0及以上设备,直接在Module级的build.gradle里把targetSdkVersion设置为26或更高版本:

android {
    compileSdkVersion 33 // 或者你当前使用的更高版本
    defaultConfig {
        targetSdkVersion 26 // 至少要到26
        // 其他项目配置...
    }
}

这样混淆工具就能找到对应的类,报错自然就消失了。

方法二:添加FCM相关的混淆规则

如果暂时不想升级targetSdkVersion,那就在你的混淆配置文件(一般是proguard-rules.pro)里添加规则,让混淆工具忽略这个找不到的类:

# 解决AdaptiveIconDrawable找不到的问题
-dontwarn com.google.firebase.messaging.zza
-dontwarn android.graphics.drawable.AdaptiveIconDrawable

另外,也可以加上FCM的通用混淆规则,避免后续出现其他类似问题:

# FCM通用混淆规则
-keep class com.google.firebase.** { *; }
-keep class com.google.android.gms.** { *; }
-keepnames class com.google.firebase.**
-keepnames class com.google.android.gms.**
-dontwarn com.google.firebase.**
-dontwarn com.google.android.gms.**

添加完规则后,重新构建Release变体应该就能顺利通过了。

内容的提问来源于stack exchange,提问作者Parinda Rajapaksha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:12:26