,这是我第一次使用proguard。我几乎能混淆我的一切。,但是字符串和类名不会混淆。如何确保类名在我的apk中被混淆。
这是我的proguard-rule.pro
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
-dontwarn org.androidannotations.api.rest.**
-keep class com.github.mikephil.charting.** { *; }
-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }
-dontwarn com.squareup.okhttp.**
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}这是我的build.gradle文件:
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
defaultConfig {
applicationId "com.ignite.tsa"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
}
}
dexOptions {
preDexLibraries = false
javaMaxHeapSize "4g" // 2g should be also OK
}
}我做错什么了?有人能提供一个合适的proguard-rule.pro文件来混淆AppCompat和其他的安卓库吗?
发布于 2017-07-31 17:56:02
我能够很容易地看到appcompat文件。
嗯,当然。您在您的ProGuard规则中键入了以下几行:
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }如果您希望android.support.v7中的类被混淆(如果它们未使用),则需要去掉这些行,或者用更好的定制方法来替换它们,以具体说明您想要保留的内容。
https://stackoverflow.com/questions/45418913
复制相似问题