Skip to content Skip to sidebar Skip to footer

Android Studio 1.1.0 Setting MinifyEnabled True Causing Issues With App

Here's my gradle.build file defaultConfig { minSdkVersion 15 targetSdkVersion 21 versionCode 2 versionName '1.0' } buildTypes { release { minifyEnabled

Solution 1:

Proguard doesn't play well with many of the libraries I used in my project.

For gson I added the proguard rules given by the gson team at http://google-gson.googlecode.com/svn/trunk/examples/android-proguard-example/proguard.cfg

You need to change

-keep class com.google.gson.examples.android.model.** { *; }

to

-keep class com.your.package.name.your.models.** { *; }

For retrofit you need to add

-dontwarn retrofit.**
-keep class retrofit.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-keepclasseswithmembers class * {
    @retrofit.http.* <methods>;
}

Taken from here https://github.com/square/retrofit/issues/117

For joda library I added

-keep class org.joda.time.** { *; }
-dontwarn org.joda.time.**

For otto you need to add

-dontwarn com.squareup.**
-keepclassmembers class ** {
    @com.squareup.otto.Subscribe public *;
    @com.squareup.otto.Produce public *;
}

Taken from here https://github.com/StephenAsherson/Android-OttoSample/blob/master/proguard-project.txt

I also added

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

Before using these configuration changes proguard trimmed my app from 3.4 mb to 2 mb. After using these changes it shrinks it to 3.2 mb so I am just going to go with minifyEnabled false.


Solution 2:

Proguard is likely obfuscating some of your classes in your project that Retrofit/Gson is using. This results in your request never being successful because parsing fails. This is due to the parameters not matching e.g. String status may turn into String a with Proguard. This does not match the response, so it fails.

In short - make sure all your classes that Retrofit/Gson uses for creating and parsing the response are excluded from Proguard's obfuscation.


Post a Comment for "Android Studio 1.1.0 Setting MinifyEnabled True Causing Issues With App"