【问题标题】:How to explicitly tell Proguard to remove full package?如何明确告诉 Proguard 删除完整包?
【发布时间】:2018-07-24 22:42:50
【问题描述】:

我有这些规则可以跳过所有活动和片段:

-keep public class * extends android.app.Activity
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment

我想要的是删除所有依赖于名为 ProductActivity 的活动(已从清单中删除)的未使用类。

我对 Proguard 文件有这些规则:

-keep class !com.alouane.app.product.** { *; }
-keep class !com.alouane.app.products.** { *; }

但在分析 APK 时似乎不起作用。

full proguard file

【问题讨论】:

  • 不知道 proguard 配置的顺序是否重要,但如果确实如此,也许将 -keep class !com.alouane.app.product.** { *; } 放在其他一般的 --keep ... 行之上会有所帮助。
  • 你找到方法了吗?

标签: java android proguard


【解决方案1】:

我认为你应该使用带有过滤器的 -injars,我正在使用 proguard maven 插件,并且在 pom.xml 中的以下配置有效

<inFilter>!com/alouane/app/product/**.class</inFilter>

我不确定您的构建过程,但是我想像下面这样的东西应该可以工作

-injars myAppJar.jar(!com.alouane.app.product.**)

-injars myAppJar.jar(!!com/alouane/app/product/**.class)

【讨论】:

    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 2011-08-30
    相关资源
    最近更新 更多