首先GSON混淆
##---------------Begin: proguard configuration for Gson ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }
##---------------End: proguard configuration for Gson ----------
这是google官方的proguard的文档,请注意倒数第二行红色的部分,class 后方到**签名的 这一段包名请改成你的项目中所有的java bean 定义的目录。
比如:
##---------------Begin: proguard configuration for Gson ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.ceshi.ceshi.ceshi.model.** { *; }
##---------------End: proguard configuration for Gson ----------
然后就是APK打包之后出现java.lang.AssertionError: AssertionError (GSON 2.8.5): java.lang.NoSuchFieldException: ALARM_DELETE
疯了我都
到处找最后在后面加上
-keepclassmembers enum * { *; }
或者
-keepclassmembers enum com.your.package.** { *; }
解决!我遇到的问题只能解决和我一样问题的小伙伴少走点弯路,加油!