diff --git a/build.gradle b/build.gradle index 9e581d343a..7efeba4130 100644 --- a/build.gradle +++ b/build.gradle @@ -82,6 +82,17 @@ android { } android { + buildTypes { + debug { + runProguard true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg' + } + release { + runProguard true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg' + } + } + sourceSets { main { manifest.srcFile 'AndroidManifest.xml' diff --git a/proguard.cfg b/proguard.cfg new file mode 100644 index 0000000000..e9bb976d3f --- /dev/null +++ b/proguard.cfg @@ -0,0 +1,31 @@ +-dontobfuscate + +## Support + +-keep class android.support.v4.app.** { *; } +-keep interface android.support.v4.app.** { *; } + +-keep class android.support.v7.internal.** { *; } +-keep interface android.support.v7.internal.** { *; } +-keep class android.support.v7.** { *; } +-keep interface android.support.v7.** { *; } +-keep public class * extends android.support.v7.app.ActionBarActivity { *; } +-keep class android.support.v7.widget.** { *; } +-keepattributes *Annotation* + +## Protobuf + +-keep class com.google.protobuf.** { *; } + +## GSON + +# removes such information by default, so configure it to keep all of it. +-keepattributes Signature + +# For using GSON @Expose annotation +-keepattributes *Annotation* + +# Gson specific classes +-keep class sun.misc.Unsafe { *; } +#-keep class com.google.gson.stream.** { *; } +