jsonapi-converter icon indicating copy to clipboard operation
jsonapi-converter copied to clipboard

@Id obfuscated by proguard even after excluding the annotation

Open SivaramSS opened this issue 4 years ago • 2 comments

Hi, I'm using jsonapi-converter in my Android Project. I have used @Id annotation in many of my model classes. I'm facing the following issue in my network calls with Proguard enabled App.

com.fasterxml.jackson.databind.JsonMappingException: Can not find a (Map) Key deserializer for type [simple type, class java.lang.reflect.Field]

Upon decompiling the APK, i find that the @Id annotation is obfuscated into com.github.jasminb.jsonapi.annotations.C0899Id even after excluding it from ProGuard.

Screenshot 2020-04-01 at 6 59 00 PM

Here are my ProGuard rules:

# jsonapi -keepclassmembers class * { @com.github.jasminb.jsonapi.annotations.Id <fields>; @com.github.jasminb.jsonapi.annotations.Meta <fields>; @com.github.jasminb.jsonapi.annotations.Type <fields>; @com.github.jasminb.jsonapi.annotations.Relationship <fields>; @com.github.jasminb.jsonapi.annotations.Links <fields>; } -keep class com.siva.screenrecorder.model.** {*;}

Kindly help in resolving this issue. Thanks in advance.

SivaramSS avatar Apr 01 '20 13:04 SivaramSS

Please see proguard tips in README.md.

jasminb avatar Apr 01 '20 13:04 jasminb

@jasminb Thanks for getting back

I have changed the rules according to the README.md to following. The Issue still pesists.

-keepclassmembers class * { @com.github.jasminb.jsonapi.annotations.Id <fields>; } -keep class * implements com.github.jasminb.jsonapi.ResourceIdHandler -keep class com.siva.screenrecorder.model.** {*;}

SivaramSS avatar Apr 01 '20 14:04 SivaramSS