Android AAR ProGuard不混淆
我在androidstudio中有一个AAR(library)项目,用来制作一个我们授权的库。我需要混淆我们发布的库,使人们很难进行反编译。但是我好像没法让这个警卫工作。当我解压AAR和下面的“classes.jar”时,所有的类名和变量仍然存在。我在ProGuard的使用方面很弱,所以想知道社区是否能提供帮助。我有一个非常基本的ProGuard文件,它是在Android Studio为项目创建模板时生成的:Android AAR ProGuard不混淆,android,android-studio,proguard,Android,Android Studio,Proguard,我在androidstudio中有一个AAR(library)项目,用来制作一个我们授权的库。我需要混淆我们发布的库,使人们很难进行反编译。但是我好像没法让这个警卫工作。当我解压AAR和下面的“classes.jar”时,所有的类名和变量仍然存在。我在ProGuard的使用方面很弱,所以想知道社区是否能提供帮助。我有一个非常基本的ProGuard文件,它是在Android Studio为项目创建模板时生成的: -printmapping out.map -keepparameternames -
-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 *;
}
可能已经太晚了,但这可能对其他任何人都有帮助。 我使用这个配置,变量名和参数变量都是加密的
-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
}
}
让我知道它是否解决了您的问题,或者您是否找到了更好的解决方案 请不要只发布代码作为答案,还要解释代码的作用以及如何解决问题。带有解释的答案通常质量更高,更容易吸引选票。
-keep,allowoptimization,allowobfuscation public class yourpackage.**