【问题标题】:Prevent a directory from proguard obfuscation防止目录被混淆
【发布时间】:2018-05-10 10:34:46
【问题描述】:

我浏览过几篇关于 proguard 混淆的 stackoverflow 帖子

How to keep/exclude a particular package path when using proguard?

How to make Proguard ignore external libraries?

How to exclude specific jars from injars during obfuscation using proguard?

但我没有找到排除特定目录以防止混淆的答案。

目录结构:

libs 
      => lib1
               => a.b.c.package
                            A.java
                            B.java
      => lib2
               => d.e.f.package
                            C.java
                            D.java
      => lib3
              => g.h.i.package 
                            E.java
                            F.java

我不想在 -keep 选项中为每个包名称添加多行,而是想从混淆中排除整个 libs 包。

有什么方法可以阻止对特定目录 libs 的混淆,如下所示?

有没有办法从混淆中排除 java 运行时类?

【问题讨论】:

    标签: java android android-proguard


    【解决方案1】:

    在 proguard-rules.pro 文件的顶部添加以下行:

    -keeppackagenames your.complete.packagename
    

    【讨论】:

      【解决方案2】:

      如果您的意思是目录是包,那么在 proguard-rules.pro 中添加以下行:

      -keep class com.example.something.packageName.** { *; }
      

      【讨论】:

      • 我在根目录下有很多子目录(比如 libs),实际的包名从子目录开始
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多