gson上的android proguard无法发布apk
Posted
技术标签:
【中文标题】gson上的android proguard无法发布apk【英文标题】:android proguard on gson cant release apk 【发布时间】:2016-09-28 20:31:38 【问题描述】:当我使用 proguard 生成发布 apk 时出现问题。谁能帮助我?
警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.AnnotationValue 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.AnnotationValue 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.AnnotationMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.AnnotationMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.AnnotationValue 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.AnnotationValue 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.AnnotationValue 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.VariableElement 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.VariableElement 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.AnnotationMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.AnnotationMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.VariableElement 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.VariableElement 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.AnnotationValue 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.element.AnnotationValue 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.util.SimpleAnnotationValueVisitor6 警告:dagger.shaded.auto.common.SuperficialValidation$3:找不到引用的类 javax.lang.model.type.TypeMirror 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Element 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Element 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.ElementKind 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.ElementKind 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.ElementKind 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Element 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Modifier 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Modifier 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Modifier 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Modifier 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Element 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Element 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Element 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Modifier 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Element 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Element 警告:dagger.shaded.auto.common.Visibility:找不到引用的类 javax.lang.model.element.Element 警告:io.jsonwebtoken.impl.Base64Codec:找不到引用的类 javax.xml.bind.DatatypeConverter 警告:io.jsonwebtoken.impl.Base64Codec:找不到引用的类 javax.xml.bind.DatatypeConverter 警告:io.jsonwebtoken.impl.Base64Codec:找不到引用的类 javax.xml.bind.DatatypeConverter 警告:io.jsonwebtoken.impl.crypto.EllipticCurveProvider:找不到引用的类 org.bouncycastle.jce.ECNamedCurveTable 警告:io.jsonwebtoken.impl.crypto.EllipticCurveProvider:找不到引用的类 org.bouncycastle.jce.ECNamedCurveTable 注意:com.amazonaws.metrics.AwsSdkMetrics:找不到动态引用的类 com.amazonaws.metrics.internal.cloudwatch.DefaultMetricCollectorFactory 注意:com.amazonaws.services.s3.internal.crypto.CryptoRuntime:找不到动态引用的类 org.bouncycastle.jce.provider.BouncyCastleProvider 注意:com.google.android.gms.maps.internal.zzad:找不到动态引用的类 com.google.android.gms.maps.internal.CreatorImpl 注意:com.google.common.util.concurrent.MoreExecutors:找不到动态引用的类 com.google.appengine.api.ThreadManager 注意:com.google.common.util.concurrent.MoreExecutors:找不到动态引用的类 com.google.apphosting.api.ApiProxy 注意:com.google.gson.internal.UnsafeAllocator:找不到动态引用的类 sun.misc.Unsafe 注意:dagger.shaded.auto.common.MoreTypes:找不到动态引用的类 javax.lang.model.type.IntersectionType 注意:com.google.common.cache.Striped64 动态访问声明的字段“base” 也许这是程序字段 'com.google.common.cache.Striped64 long base; ' 注意:com.google.common.cache.Striped64 动态访问声明的字段“忙碌” 也许这是程序字段 'com.google.common.cache.Striped64 int busy; ' 注意:com.google.common.cache.Striped64$Cell 动态访问声明的字段“值” 也许这是程序字段'bolts.Capture java.lang.Object value; ' 也许这是程序字段 'com.amazonaws.auth.SignatureVersion java.lang.String value; ' 也许这是程序字段 'com.amazonaws.mobileconnectors.cognito.Record java.lang.String value; ' 也许这是程序字段 'com.amazonaws.mobileconnectors.cognito.Record$Builder java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.cognitoidentity.model.ErrorCode java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.cognitosync.model.BulkPublishStatus java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.cognitosync.model.Operation java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.cognitosync.model.Platform java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.cognitosync.model.Record java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.cognitosync.model.RecordPatch java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.cognitosync.model.StreamingStatus java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.AttributeAction java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.AttributeValueUpdate com.amazonaws.services.dynamodbv2.model.AttributeValue value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.ComparisonOperator java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.ConditionalOperator java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.ExpectedAttributeValue com.amazonaws.services.dynamodbv2.model.AttributeValue value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.IndexStatus java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.KeyType java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.ProjectionType java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.ReturnConsumedCapacity java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.ReturnItemCollectionMetrics java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.ReturnValue java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.ScalarAttributeType java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.Select java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.StreamViewType java.lang.String value; ' 也许这是程序字段 'com.amazonaws.services.dynamodbv2.model.TableStatus java.lang.String value; ' 也许这是程序字段 'com.amazonaws.transform.MapEntry java.lang.Object value; ' 也许这是程序字段 'com.bumptech.glide.load.model.LazyHeaders$StringHeaderFactory java.lang.String value; ' 也许这是程序字段 'com.facebook.GraphRequest$Attachment java.lang.Object value; ' 也许这是程序字段 'com.facebook.internal.JsonUtil$JSONObjectEntry java.lang.Object value; ' 也许这是程序字段 'com.facebook.internal.LockOnGetVariable java.lang.Object value; ' 也许这是程序字段 'com.facebook.internal.Mutable java.lang.Object value; ' 也许这是程序字段 'com.fasterxml.jackson.databind.deser.impl.BeanPropertyMap$Bucket com.fasterxml.jackson.databind.deser.SettableBeanProperty value; ' 也许这是程序字段 'com.fasterxml.jackson.databind.deser.impl.PropertyValue java.lang.Object value; ' 也许这是程序字段 'com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder$Linked java.lang.Object value; ' 也许这是程序字段 'com.fasterxml.jackson.databind.ser.impl.JsonSerializerMap$Bucket com.fasterxml.jackson.databind.JsonSerializer value; ' 也许这是程序字段 'com.fasterxml.jackson.databind.util.LinkedNode java.lang.Object value; ' 也许这是程序字段 'com.google.android.gms.internal.zzaf$zze int value; ' 也许这是程序字段 'com.google.android.gms.internal.zzsz$zze java.lang.String value; ' 也许这是程序字段 'com.google.common.base.Functions$ConstantFunction java.lang.Object value; ' 也许这是程序字段 'com.google.common.base.MoreObjects$ToStringHelper$ValueHolder java.lang.Object value; ' 也许这是程序字段 'com.google.common.base.Objects$ToStringHelper$ValueHolder java.lang.Object value; ' 也许这是程序字段 'com.google.common.base.Suppliers$ExpiringMemoizingSupplier java.lang.Object value; ' 也许这是程序字段 'com.google.common.base.Suppliers$MemoizingSupplier java.lang.Object value; ' 也许这是程序字段 'com.google.common.cache.LocalCache$WriteThroughEntry java.lang.Object value; ' 也许这是程序字段 'com.google.common.cache.RemovalNotification java.lang.Object value; ' 也许这是程序字段 'com.google.common.cache.Striped64$Cell long value; ' 也许这是程序字段 'com.google.common.collect.ComputingConcurrentHashMap$ComputedReference java.lang.Object value; ' 也许这是程序字段 'com.google.common.collect.Count int value; ' 也许这是程序字段 'com.google.common.collect.ImmutableEntry java.lang.Object value; ' 也许这是程序字段 'com.google.common.collect.LinkedListMultimap$Node java.lang.Object value; ' 也许这是程序字段 'com.google.common.collect.MapMakerInternalMap$WriteThroughEntry java.lang.Object value; ' 也许这是程序字段 'com.google.common.collect.Ordering$IncomparableValueException java.lang.Object value; ' 也许这是程序字段 'com.google.common.collect.Tables$ImmutableCell java.lang.Object value; ' 也许这是程序字段 'com.google.common.collect.TreeMultiset$Reference java.lang.Object value; ' 也许这是程序字段 'com.google.common.collect.TreeRangeMap$RangeMapEntry java.lang.Object value; ' 也许这是程序字段 'com.google.common.primitives.UnsignedInteger int value; ' 也许这是程序字段 'com.google.common.primitives.UnsignedLong long value; ' 也许这是程序字段 'com.google.common.util.concurrent.AbstractFuture$Sync java.lang.Object value; ' 也许这是程序字段 'com.google.common.util.concurrent.AtomicDouble long value; ' 也许这是程序字段 'com.google.common.util.concurrent.Futures$ImmediateSuccessfulCheckedFuture java.lang.Object value; ' 也许这是程序字段 'com.google.common.util.concurrent.Futures$ImmediateSuccessfulFuture java.lang.Object value; ' 也许这是程序字段 'com.google.gson.JsonPrimitive java.lang.Object value; ' 也许这是程序字段 'com.google.gson.internal.LazilyParsedNumber java.lang.String value; ' 也许这是程序字段 'com.google.gson.internal.LinkedHashTreeMap$Node java.lang.Object value; ' 也许这是程序字段 'com.google.gson.internal.LinkedTreeMap$Node java.lang.Object value; ' 也许这是程序字段 'com.google.zxing.aztec.encoder.SimpleToken short value; ' 也许这是程序字段 'com.google.zxing.oned.rss.DataCharacter int value; ' 也许这是程序字段 'com.google.zxing.oned.rss.FinderPattern int value; ' 也许这是程序字段 'com.google.zxing.oned.rss.expanded.decoders.DecodedChar char value; ' 也许这是程序字段 'com.google.zxing.pdf417.decoder.Codeword int value; ' 也许这是程序字段 'com.viewpagerindicator.TitlePageIndicator$IndicatorStyle int value; ' 也许这是程序字段 'com.viewpagerindicator.TitlePageIndicator$LinePosition int value; ' 也许这是程序字段'dagger.internal.codegen.writer.StringLiteral java.lang.String value; ' 也许这是程序字段 'io.jsonwebtoken.SignatureAlgorithm java.lang.String value; ' 也许这是库字段 'android.R$attr int value; ' 也许这是库字段 'android.util.MutableBoolean boolean value; ' 也许这是库字段 'android.util.MutableByte byte value; ' 也许这是库字段 'android.util.MutableChar char value; ' 也许这是库字段 'android.util.MutableDouble double value; ' 也许这是库字段 'android.util.MutableFloat float value; ' 也许这是库字段 'android.util.MutableInt int value; ' 也许这是库字段 'android.util.MutableLong long value; ' 也许这是库字段 'android.util.MutableShort short value; ' 也许这是库字段 'android.view.animation.Animation$Description float value; ' 也许这是库字段'java.sql.DriverPropertyInfo java.lang.String value; ' 注意:com.google.gson.internal.UnsafeAllocator 动态访问声明的字段“theUnsafe” 也许这是程序字段 'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator sun.misc.Unsafe theUnsafe; ' 注意:有 8 个对未知类的引用。 您应该检查您的配置是否有拼写错误。 (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass) 注意:有 10 个类试图使用反射访问封闭类。 您应该考虑保留内部类属性 (使用'-keepattributes InnerClasses')。 (http://proguard.sourceforge.net/manual/troubleshooting.html#attributes) 注意:有 3 个类试图使用反射访问封闭方法。 您应该考虑保留封闭的方法属性 (使用'-keepattributes InnerClasses,EnclosureMethod')。 (http://proguard.sourceforge.net/manual/troubleshooting.html#attributes) 注意:有 7 个未解析的对类或接口的动态引用。 您应该检查是否需要指定其他程序 jar。 (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass) 注意:通过自省的方式对类成员进行了 4 次访问。 您应该考虑明确保留提到的类成员 (使用“-keep”或“-keepclassmembers”)。 (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclassmember) 警告:有 2458 个未解析的类或接口引用。 您可能需要添加缺少的库 jar 或更新它们的版本。 如果您的代码在没有丢失类的情况下工作正常,您可以抑制 带有“-dontwarn”选项的警告。 (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass) 警告:对程序类成员有 1 个未解决的引用。 您的输入类似乎不一致。 您可能需要重新编译代码。 (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember) 警告:处理任务时出现异常 java.io.IOException:请先更正上述警告。 :app:transformClassesAndResourcesWithProguardForRelease 失败 FAILURE:构建失败并出现异常。 * 什么地方出了错: 任务 ':app:transformClassesAndResourcesWithProguardForRelease' 执行失败。 > java.io.IOException: 请先更正上述警告。 * 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。 构建失败<b>Proguard rules</b>
<pre>
-keep class com.google.android.gms.** *;
-dontwarn com.google.android.gms.**
-dontwarn com.viewpagerindicator.*
-dontwarn com.amazonaws.**
-dontwarn sun.misc.Unsafe
-dontnote com.google.vending.licensing.ILicensingService
-dontnote com.android.vending.licensing.ILicensingService
# google play
-keep class * extends java.util.ListResourceBundle
protected Object[][] getContents();
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable
public static final *** NULL;
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class *
@com.google.android.gms.common.annotation.KeepName *;
-keepnames class * implements android.os.Parcelable
public static final ** CREATOR;
##---------------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
# defualt
-keep class com.sample.package.models.** *; # samople only cant public package right now
##---------------End: proguard configuration for Gson ----------
-keep class com.viewpagerindicator.** *;
-keepattributes SourceFile,LineNumberTable
# facebook
-keep class com.facebook.** *;
-keepattributes Signature
-dontwarn bolts.**
-dontwarn com.facebook.**
# Dagger
-dontwarn dagger.internal.codegen.**
-keepclassmembers,allowobfuscation class *
@javax.inject.* *;
@dagger.* *;
<init>();
-keep class dagger.* *;
-keep class javax.inject.* *;
-keep class * extends dagger.internal.Binding
-keep class * extends dagger.internal.ModuleAdapter
-keep class * extends dagger.internal.StaticInjection
# Square
-keep class butterknife.** *;
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder *;
-keepclasseswithmembernames class *
@butterknife.* <fields>;
-keepclasseswithmembernames class *
@butterknife.* <methods>;
-keepnames class * @butterknife.Bind *;
-keep class com.google.gson
-keep class Gson**
-keepclassmembers class Gson**
*;
【问题讨论】:
最好在帖子中包含错误而不是链接到外部图像。 @nateyolles 我刚刚编辑过.. 你能帮帮我吗? 【参考方案1】:你可以试试这个
#GSON
-keepattributes Signature
-keepattributes *Annotation*
-keep class sun.misc.Unsafe *;
【讨论】:
【参考方案2】:Gson 的 Proguard:
##---------------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
# 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.** *;
-keepattributes *Annotation*
-keep class sun.misc.Unsafe *;
##---------------End: proguard configuration for Gson ----------
【讨论】:
以上是关于gson上的android proguard无法发布apk的主要内容,如果未能解决你的问题,请参考以下文章
android中的proguard - 我应该混淆gson POJO
使用 GSON 库和 ProGuard 时 Android 崩溃