首页 > 解决方案 > 使用 Firebase 配置 Proguard 规则

问题描述

我有这个项目,我使用 Firebase 实时数据库。

在此处输入图像描述

写这个proguard规则是正确的吗?

-keepattributes Signature

-keepclassmembers class activity.** {
  *;
}
-keepclassmembers class adapter.** {
   *;
}
-keepclassmembers class fragment.** {
  *;
}
-keepclassmembers class persistence.** {
  *;
}
-keepclassmembers class services.** {
   *;
}

该应用程序运行良好,但是当我在 PlayStore 上发布时,查询似乎不起作用。在我的毕业典礼上,我添加了

release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'),
                'proguard-rules.pro'
    }

我做错了什么?

标签: androidfirebasefirebase-realtime-databaseandroid-proguard

解决方案


您应该-keep使用将由 firebase 序列化/反序列化的类,否则它将无法对这些类使用反射。-keepclassmembers只会保留成员并混淆类的名称,如果您的库使用反射,这是您绝对不想做的事情。尝试用-keepclassmembers这些-keep类替换。

-keep class persistence.** {
  *;
}

推荐阅读