当前位置: 首页 > 面试题库 >

如何排除由Proguard保留的课程

隆谦
2023-03-14
问题内容

我在proguard配置中添加了以下行:

 -keep class com.mypackage.** {*;}

但是现在proguard不会com.mypackage.BuildConfig.class从结果中删除我的课程。我希望将其删除。

如何排除某个给定的班级?

谢谢


问题答案:

您可以使用以下规则:

-keep class !com.mypackage.BuildConfig, com.mypackage.** { *; }


 类似资料:
  • 问题内容: 您好,我正在编写一个Android应用程序,并且已经设置了Proguard来混淆我的应用程序。但是,我使用类加载器为应用程序动态加载了不同的扩展。问题在于,如果更改了它们的名称,它们将无法正确加载。如何防止Proguard混淆特定的类名? 问题答案: 使用proguard.cfg中的选项 请参阅手册 https://www.guardsquare.com/en/proguard/man

  • 问题内容: 我正在使用proguard混淆我的android应用程序。android应用程序包含一些本机代码,这些代码使回调到完全限定的java方法。我不必混淆这些类及其方法的名称。下面正确地保留了类名,但没有保留方法名。 问题答案: 对于本机方法:ProGuard手册>示例>处理本机方法 在这种情况下,对于回调方法:ProGuard手册>示例>处理回调方法 或者,例如,如果所有公共方法都可能是回

  • 我有一个jar文件集合,其依赖关系为菱形模式:               /           \ Dep1.JAR ;     Dep2.JAR                         /                 我想用ProGuard对它们进行模糊处理,以保留它们的依赖关系,例如,这样base.jar和dep2.jar的模糊版本就可以单独执行,而不需要dep1.jar和de

  • 问题内容: 我是AngularJS的新手,正在尝试为自己构建一个简单的小应用程序。我有正在使用抓取的应用程序的JSON数据,并且该数据在多个视图/路由之间应该相同。但是,当我转到新路线时,JSON数据(存储为)不再可用于新视图。我该怎么做才能将此数据传递到新视图,而无需再次获取?(本教程的电话目录应用程序每次都会根据我的判断重新获取此数据。) 据我了解,可以做到这一点,但似乎人们对此并不满意。如果

  • 想要更改包名,但需要保持类名不变。知道吗?

  • 问题内容: 我正在开发一个以java jar形式分发的库,并且在proguard上运行proguard的方式是仅保留所需的接口。我有一堆成员变量和一些枚举定义的配置类。我的proguard脚本可以很好地保留成员变量,但是混淆了枚举定义。我已经尝试过一切想使Proguard保留这些内部定义的公共枚举的方法,但是我无法使其正常工作。 现在我正在使用: 如果我尝试: 我收到一个模棱两可的错误:“注意:配