Can't shrink flurry with proguard

Finally I managed to do that like this:

-keep class com.flurry.** { *; }
-dontwarn com.flurry.**

Korniltsev's answer works for me, however the new flurry SDK (3.2.2) suggests to add the following:

-keep class com.flurry.** { *; }
-dontwarn com.flurry.**
-keepattributes *Annotation*,EnclosingMethod
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}

There may be some corner cases where the new lines are required, so I ended up going with their README.


I'm not sure how Flurry is specifically interacting with the AdListener, but the name of Google's class is what's being obfuscated.

Try adding the line -keep public class com.google.ads.AdListener to the proguard file. You may need to add a few more class exceptions if Flurry uses other com.google.ads classes, but that line should solve your immediate warning.

UPDATE: The problem is that the public class method names are being obfuscated for the various ad libraries. So, you may need to include additional proguard settings to include these methods:

-keep public class com.google.ads.** { public protected *; } 
-keep public class com.inmobi.androidsdk.** { public protected *; }
-keep public class com.millenialmedia.android.** { public protected *; }
-keep public class com.mobclix.android.sdk.** { public protected *; }
-keep public class com.jumptap.adtag.** { public protected *; }

Having worked with Flurry and proguard myself, do be sure to test the apk thoroughly before uploading to your app market(s) of choice.