我正在尝试构建应用发行版
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
但是它引发了我这个错误:
java.lang.RuntimeException:在类org.json.JSONObject`上找不到要序列化的属性
我正在尝试将购买的商品保存到Firebase firestore中。
我已经创建了一个POJO购买计划
@Keep
public class PurchasePlan {
@PropertyName("purchased_on")
public Date purchased_on;
@PropertyName("email_id")
public String email_id;
@PropertyName("pro_plan_id")
public String pro_plan_id;
@PropertyName("is_acknowledged")
public boolean is_acknowledged;
@PropertyName("applied_promo_code")
public String applied_promo_code;
@PropertyName("pro_plan_price")
public String pro_plan_price;
@PropertyName("pro_plan_details")
public SkuDetails pro_plan_details;
@PropertyName("cancelled_on")
public Date cancelled_on;
}
我将PurchasePlan对象保存到Firestore
private void savePurchase() {
FirebaseFirestore db = FirebaseFirestore.getInstance();
if (BuildConfig.DEBUG) {
db.collection(PAID_USERS_DEBUG).add(plan);
} else {
db.collection(PAID_USERS).add(plan);
}
}
应用程序不断崩溃,不会将对象保存到Firestore集合中。任何帮助表示赞赏。谢谢!
答案 0 :(得分:0)
找到了解决方案。 R8兼容性faq有所帮助。 另外,this。
我在保护规则中添加了以下几行。
-keep class com.<package_name>.models.** { <fields>; }
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
-keep class * implements com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer