GSON混淆碰到的一些问题

首先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.** { *; }

解决!我遇到的问题只能解决和我一样问题的小伙伴少走点弯路,加油!

你可能感兴趣的:(hunxiao)