根据我的个人测试,结果发现Firebase增强的Android应用需要使用ProGuard进行编译。
无论如何,如果您在Firebase中使用自定义对象(即bean或POJO),则必须添加-keepnames class com.my.package.beans.** { *; }
。
火力地堡SDK 1.0.18:
-keepnames class com.firebase.** { *; }
-keepnames class com.shaded.fasterxml.jackson.** { *; }
-keepnames class org.shaded.apache.** { *; }
-keepnames class javax.servlet.** { *; }
-dontwarn org.w3c.dom.**
-dontwarn org.joda.time.**
-dontwarn org.shaded.apache.commons.logging.impl.**
火力地堡SDK 1.1.1:
-keep class com.firebase.** { *; }
-keep class org.shaded.apache.** { *; }
-keepnames class com.shaded.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.w3c.dom.**
-dontwarn org.joda.time.**
-dontwarn org.shaded.apache.**
-dontwarn org.ietf.jgss.**
火力地堡SDK 2.0.0:
-keep class com.firebase.** { *; }
-keep class org.apache.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.w3c.dom.**
-dontwarn org.joda.time.**
-dontwarn org.shaded.apache.**
-dontwarn org.ietf.jgss.**
# Only necessary if you downloaded the SDK jar directly instead of from maven.
-keep class com.shaded.fasterxml.jackson.** { *; }
最后一招:
-keep class !com.my.package.** { *; }
注:
任何官方指南将受到欢迎。 -dontwarn
指令显然是危险的,代码可能在我没有测试过的点上断开。此外,上述规则非常宽容,其他规则可能会更好地优化您的APK。
来源
2014-10-09 09:14:59
caw
参见[配置ProGuard的(HTTPS ://firebase.google.com/docs/database/android/start/#proguard) – Kato 2017-01-09 22:17:09