jasminb / jsonapi-converter

JSONAPI-Converter is a Java/Android library that provides support for working with JSONAPI spec
Apache License 2.0
272 stars 81 forks source link

@Id obfuscated by proguard even after excluding the annotation #236

Open SivaramSS opened 4 years ago

SivaramSS commented 4 years ago

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.

jasminb commented 4 years ago

Please see proguard tips in README.md.

SivaramSS commented 4 years ago

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