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

Flutter Awesome Notifications发布模式异常,Debug模式正常

解决Release模式下AwesomeNotifications初始化报错的方案

问题根源

这个报错是Release模式代码混淆搞的鬼——Awesome Notifications依赖SharedPreferences存储配置,但混淆把SharedPreferences相关的类名改乱了,导致找不到正确的参数化类,Debug模式默认不混淆所以运行正常。

具体修复步骤

  • 添加混淆保护规则:打开Android项目中的android/app/proguard-rules.pro文件,加入以下规则,防止核心类被混淆:
    # 保护SharedPreferences相关类不被混淆
    -keep class android.content.SharedPreferences { *; }
    -keep class android.content.SharedPreferences$** { *; }
    
    # 保护Awesome Notifications的核心类
    -keep class me.carda.awesome_notifications.** { *; }
    -keep class me.carda.awesome_notifications_core.** { *; }
    
  • 确认混淆配置开启:检查android/app/build.gradle的release配置块,确保混淆和资源压缩处于开启状态,并且指定了上述规则文件:
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    
  • 清理缓存后重构建:执行以下命令清理缓存,再重新打包Release版本:
    flutter clean
    flutter build apk --release
    

额外检查项

  • 确保调用AwesomeNotifications().initialize()之前,SharedPreferences已经完成初始化,可提前执行await SharedPreferences.getInstance()。
  • 如果项目中还有其他依赖SharedPreferences的插件,需确认它们的混淆规则没有冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:22:37