Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AAR ProGuard不混淆_Android_Android Studio_Proguard - Fatal编程技术网

Android AAR ProGuard不混淆

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 -

我在androidstudio中有一个AAR(library)项目,用来制作一个我们授权的库。我需要混淆我们发布的库,使人们很难进行反编译。但是我好像没法让这个警卫工作。当我解压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 *;
}

可能已经太晚了,但这可能对其他任何人都有帮助。 我使用这个配置,变量名和参数变量都是加密的

-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.**