我在我的项目中使用proguard,但是它在new gson().tojson(request)中给出了错误的数据;
我要出去了

{"a":"manage","b":"689184d4418b6d975d9a8e53105d3382","c":"10","d":"76"}

而不是
{"username":"manage","password":"689184d4418b6d975d9a8e53105d3382","value":"10","store":"76"}

我的先锋队规则
-dontwarn okio.**
-dontwarn retrofit2.Platform$Java8
-dontwarn sun.misc.Unsafe
-dontwarn org.w3c.dom.bootstrap.DOMImplementationRegistry
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-keepclassmembers class rx.internal.util.unsafe.** {
    long producerIndex;
    long consumerIndex;
}

-keepclasseswithmembers class * {
    @retrofit2.http.* <methods>;
}
-keep class com.google.gson.** { *; }
-keep class com.google.inject.** { *; }

我在用
 compile 'com.squareup.retrofit2:converter-gson:2.0.0'

在android中有没有一个新的proguard配置推荐用于改型2:converter gson?

最佳答案

您要么希望保留与gson一起使用的类,要么使用@SerializedName注释。
选项1(保持等级)
//包中的所有类
-保持类com.example.app.json.*{*;}
//或特定类
-保留类com.example.app.json.specificclass{*;}
选项2(使用@SerializedName):
公共类yourjsonClass{
@serializedname(“name”)字符串用户名;
公共MyClass(字符串用户名){
this.username=用户名;
}
}
使用第二个选项proguard仍然混淆类和字段名,但是gosn可以使用注释为每个字段获取正确的名称。

08-06 01:53
查看更多