【问题标题】:AAR ProGuard not obfuscatingAAR ProGuard 不混淆
【发布时间】:2018-05-04 16:01:17
【问题描述】:

我在 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 *;
}

【问题讨论】:

    标签: android android-studio proguard


    【解决方案1】:

    可能为时已晚,但它可能对其他人有所帮助。 我正在使用这个配置,变量名称和参数变量都是加密的

    -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
            }
        }
    

    如果它解决了您的问题或者您是否找到了更好的解决方案,请告诉我!

    【讨论】:

      【解决方案2】:
      -keep,allowoptimization,allowobfuscation public class yourpackage.**
      

      【讨论】:

      • 请不要只发布代码作为答案,还要说明您的代码的作用以及它如何解决问题。带有解释的答案通常质量更高,更有可能吸引投票。
      猜你喜欢
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      • 2015-04-05
      • 2019-07-20
      • 2013-09-30
      • 1970-01-01
      相关资源
      最近更新 更多