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

为什么Proguard处理AndroidManifest.xml

端木权
2023-03-14
问题内容

我看到了一些无法解释的Proguard行为。

AFAIK
proguard不关注android清单。另外,在我的proguard.cfg文件中,我没有提及BroadcastReceiver相关的类。因此,我认为应该删除这些内容。

但是我在bin / proguard.txt中看到了一些奇怪的东西:

# view AndroidManifest.xml #generated:784
-keep class com.fiksu.asotracking.InstallTracking { <init>(...); }

并且该类(BroadcastReceiver的后裔)不会被剥离。理性对我没有任何意义:

[proguard] com.fiksu.asotracking.InstallTracking
[proguard]   is kept by a directive in the configuration.

如果清单中未提及类,则将其剥离。

知道为什么会很棒。


问题答案:

构建过程将运行该工具,以基于和其他xml文件aapt自动创建配置文件。然后,构建过程将配置文件传递给ProGuard。因此ProGuard本身确实不考虑,但aapt
+ ProGuard会考虑。bin/proguard.txt``AndroidManifest.xml``AndroidManifest.xml



 类似资料:
  • 我有一个简单的批处理测试文件test.bat如下行: 当我运行它时,我希望得到的是测试,而不是: 为什么batch会试图解释这条评论?或者这里发生了什么?如果我去掉注释,脚本会按预期打印测试。 文件中也没有提到这一点。

  • 我非常肯定,在我的代码中,唯一可能抛出此错误的地方(基于端口号)是下面的代码。 我尝试删除语句,但没有改变结果。当该操作运行时,如果端口已经被进程绑定,我会得到以下错误,我希望捕获并报告该错误,而不会导致进程退出。

  • 问题内容: 我有2个文件夹,每个文件夹包含数十个批处理文件()。 批处理文件包含类似于以下内容的文本 要么 在Java中,我列出了每个文件夹中的每个批处理,并循环浏览列表,执行每个批处理文件,如下所示: 方法返回后,删除批处理文件。 问题是,批处理文件中的所有命令均未运行(我请求删除或删除的文件和文件夹均未运行),并且Java进程只是继续并删除了批处理文件本身。 批处理文件位于文件夹中 写下来之后

  • 我知道如何混淆可执行的jar文件,因为它有一个主类。但是我正在尝试创建我的API(已经完成了),我只需要混淆代码。问题是,每当我尝试使用Proguard(一个众所周知的java模糊器)模糊jar文件时,它就会给我一个与“keep”有关的错误。我正在从Proguard运行proguard-gui,在Eclipse中,我将项目导出为一个普通的jar文件(非可执行文件),并试图混淆该jar文件。另外,我

  • 问题内容: 在课堂上,我在玩耍,发现CSS可以与虚构元素一起使用。 例: 当我的教授第一次看到我使用此功能时,他对组合元素起作用感到惊讶,并建议我将所有组合元素更改为带有ID的段落。 为什么我的教授不希望我使用虚构元素?他们有效地工作。 另外,他为什么不知道组成元素存在并且可以与CSS一起使用。他们不常见吗? 问题答案: 为什么CSS可以处理假元素? (大多数)浏览器被设计为(在某种程度上)与将来

  • 我正在尝试使用这个名为OpenSimplexNoise的库,由GitHub用户TheCodingTrain制作。但我立即发现我无法使用它。我做了一些挖掘,试图自己解决这个问题,我发现JAR文件和主文件夹应该具有相同的名称(例如,库文件将命名为OpenSimplexName,JAR文件将命名为OpenSimplexNoise.jar),JAR文件所在的文件夹应该称为“库”。一旦我修复了这些问题,Op