我在Android Studio中有一个AAR(库)项目,用于创建我们许可的库。我需要对我们发布的库进行模糊处理,以使人们很难反编译。但我似乎无法让ProGuard工作。当我解压缩AAR然后解压缩下面的“classes.jar”时,所有类名仍然存在以及变量。我对ProGuard的使用非常弱,所以想知道社区是否可以提供帮助。我有一个非常基本的ProGuard文件,一个在Android Studio为项目创建模板时生成的文件:
-printmapping out.map
-keepparameternames
-renamesourcefileattribute SourceFile
# -keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,EnclosingMethod
-keepattributes Exceptions
# Preserve all annotations.
-keepattributes *Annotation*
# Preserve all public classes, and their public and protected fields and methods
-keep public class * {
public protected *;
}
答案 0 :(得分:0)
可能为时已晚,但对其他人可能会有帮助。 我正在使用此配置,变量名称以及参数varialbes都被加密
-renamesourcefileattribute SourceFile
-keepattributes Exceptions
-keepattributes *Annotation*
-keep public class * {
public protected *;
}
我还在构建类型中使用了此配置,因此它不可调试
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable false
jniDebuggable false
zipAlignEnabled true
}
}
让我知道它是否解决了您的问题,或者您是否找到了更好的解决方案!
答案 1 :(得分:0)
-keep,allowoptimization,allowobfuscation public class yourpackage.**