4

I have a project with a couple of modules, some jar dependencies in libs folder and some some other gradle dependencies. I am trying to build a release apk with proguard enabled but i am getting a lot of warnings during the build process for certain dependencies. e.g this:

Warning:org.codehaus.jackson.jaxrs.JacksonJsonProvider: can't find superclass or interface javax.ws.rs.ext.MessageBodyReader 

Would someone please refer a guide on how to properly define rules for the dependencies. and do i need to add rules for the modules besides the app module.

Edit:

I have added the following rule to the app build.gradle file:

-keep interface org.codehaus.jackson.** { *; }
-keep class org.codehaus.jackson.** { *; }

but i am still getting the warnings during build process.

Sayed Jalil Hassan
  • 2,535
  • 7
  • 30
  • 42

1 Answers1

2

I am using this rule for retrofit

-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-dontwarn com.squareup.okhttp.**

-dontwarn rx.**
-dontwarn retrofit.**
-dontwarn okio.**
-keep class retrofit.** { *; }
-keepclasseswithmembers class * {
    @retrofit.http.* <methods>;
}

and my jackson rules are

-keepattributes *Annotation*,EnclosingMethod,Signature
-keepnames class com.fasterxml.jackson.** { *; }
 -dontwarn com.fasterxml.jackson.databind.**
 -keep class org.codehaus.** { *; }
 -keepclassmembers public final enum org.codehaus.jackson.annotate.JsonAutoDetect$Visibility {
 public static final org.codehaus.jackson.annotate.JsonAutoDetect$Visibility *; }
-keep public class your.class.** {
  public void set*(***);
  public *** get*();
}

EDIT

Your library jars refer to yet more library jars (Mortbay, SLF4J, Apache Commons Logging, Log4j, ...) Adding these jars with extra '-libraryjars' options should solve the problem.If you are not refrencing them then use this rule

-dontwarn javax.management.**  
-dontwarn java.lang.management.**  
-dontwarn org.apache.log4j.**  
-dontwarn org.apache.commons.logging.** 
-dontwarn org.slf4j.**  
-dontwarn org.json.*
williamj949
  • 11,166
  • 8
  • 37
  • 51