防止目录被Proguard混淆

4

我已经阅读了几篇关于Proguard混淆的stackoverflow帖子。

如何在使用Proguard时保留/排除特定的包路径?

如何使Proguard忽略外部库?

如何在使用Proguard进行混淆时从injars中排除特定的jar文件?

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

目录结构:

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运行时类吗?

2个回答

2
在您的 proguard-rules.pro 文件顶部添加以下行:
-keeppackagenames your.complete.packagename

1
如果您的意思是目录就是包,那么请在proguard-rules.pro文件中添加以下行:
-keep class com.example.something.packageName.** { *; }

我有许多子目录在根目录下(比如说libs),实际的包名从子目录开始。 - Ravindra babu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接