我已连接FCM
并经过测试。而且效果很好。
但是,我准备发布我的应用并在proguard
中启用build.gradle
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt')
proguardFile 'proguard-rules.pro'
}
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt')
proguardFile 'proguard-rules.pro'
// proguardFile 'proguard_debug.pro'
}
}
并将其应用于proguard-rules.pro
:
-keep class com.firebase.** { *; }
-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.**
-dontwarn com.firebase.**
-dontnote com.firebase.client.core.GaePlatform
所有人都收到推送消息,但只有我的测试电话没有收到proguard
已启用的消息。我将data
模型转换为Serialize
格式。但是现在这个问题正在发生。
如何使用FCM或其他Firebase功能,例如Remote Config
或Crashlystics
?
答案 0 :(得分:1)
混淆处理重命名了Kotlin data class
中的变量而没有@SerializedName
,结果Json
未解析到模型类。
为防止这种情况,您可以使用@Keep
批注
@Keep
data class MyClass(...)
或将@SerializedName
设置为所有值