Android proguard doesn't obfuscate classes
<p>I've build a release Android application with proguard, but after decompiling of APK I see that classes, which must be obfuscated, have normal sources. There's a part of my gradle build :</p>

<pre><code>buildTypes {
    debug {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
</code></pre>

<p>And here's my proguard-rules.pro file:</p>

<pre><code>-dontpreverify
-repackageclasses ''
-allowaccessmodification
-keepattributes *Annotation*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider

-keep public class * extends android.view.View {
    public &lt;init&gt;(android.content.Context);
    public &lt;init&gt;(android.content.Context, android.util.AttributeSet);
    public &lt;init&gt;(android.content.Context, android.util.AttributeSet, int);
    public void set*(...);
}

-keepclasseswithmembers class * {
    public &lt;init&gt;(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public &lt;init&gt;(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * implements android.os.Parcelable {
    static android.os.Parcelable$Creator CREATOR;
}

-keepclassmembers class **.R$* {
    public static &lt;fields&gt;;
}

-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment

-keepnames class * implements java.io.Serializable

-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    !static !transient &lt;fields&gt;;
    !private &lt;fields&gt;;
    !private &lt;methods&gt;;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

-assumenosideeffects class android.util.Log {
    public static *** e(...);
    public static *** w(...);
    public static *** wtf(...);
    public static *** d(...);
    public static *** v(...);
}

-keepclasseswithmembernames class * {
    native &lt;methods&gt;;
}
-keepclassmembers class * {
    public void *ButtonClicked(android.view.View);
}

-dontwarn okio**
-dontwarn java.lang.invoke**
-dontwarn org.apache.commons.io**
-dontwarn org.codehaus**
-keep public class java.nio**
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
-keep class net.sqlcipher.** { *; }

-keep class net.sqlcipher.database.** { *; }

-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-keepclasseswithmembers class * {
    @retrofit2.http.* &lt;methods&gt;;
}
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-keep class com.google.gson.** { *; }
-keep class com.google.inject.* { *; }
-keep class org.apache.http.** { *; }
-keep class org.apache.james.mime4j.** { *; }
-keep class javax.inject.** { *; }
-keepclassmembernames interface * {
    @retrofit.http.* &lt;methods&gt;;
}

-keep class sun.misc.Unsafe { *; }
-keep public class !com.vidal.cardio.datas.MySQLCipherOpenHelper { *; }
-keep public class !com.vidal.cardio.datas.SCLcipherOpenHelper { *; }
</code></pre>

<p>Well, I've expected that <code>MySQLCipherOpenHelper</code> and <code>SCLcipherOpenHelper</code> will be obfuscated, but actually they don't. Maybe there's a mistake in proguard-rules.pro?</p>