问题标签 [proguard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1803 浏览

java - 如何使用 Android 配置 Proguard,使其不会删除仅在 XML 布局中引用的事件处理程序方法?

我有许多活动,其中当用户点击某些 UI 元素时要执行的处理程序方法被 Proguard 剥离,因为它看不到它正在被使用。

最好的解决方案是什么?

  • 关闭 proguard 中的代码收缩功能(不理想,因为它在许多领域都有好处)

  • 有没有办法注释我希望它留下的方法?

  • 如何调整 proguard 配置以从不删除以“on”开头的方法?

我尝试添加这一行(即不要修剪从我的 Activity 对象的子类继承的方法),但它没有达到预期的效果。我认为它适用于类,但不适用于它们的方法。

0 投票
1 回答
915 浏览

proguard - Proguard 参数调用中路径中的问题 med 空间

当我尝试将此参数传递给 Proguard 时,它会引发此异常:

java -Xms128M -Xmx256M -jar "../../../tools/proguard/proguard.jar" @game_specific.pro -libraryjars "C:/Program Files/Java/jdk1.5.0_22/jre/lib/rt .jar" 错误:期望类路径分隔符 ';' 在参数编号 3 中的 'Files/Java/jdk1.5.0_22/jre/lib/rt.jar 之前

这是由于文件名中的空格,我知道很多。我已经尝试过使用 " 和 ' 的各种变通方法,但唯一有效的是当我在路径中使用 progra~1 时。这对我来说不是一个可行的解决方案,因为这个命令应该能够在很多具有各种 Java 路径的不同计算机。

我究竟做错了什么 ?

0 投票
3 回答
2701 浏览

android - 默认 proguard.cfg 出错?

当我在 Eclipse 中创建一个新的 Android 项目时,会创建以下默认的 proguard.cfg 文件:

请注意,该-optimizations行注释掉了文件的其余部分。我想知道这是故意的还是错字,该行的最后两个字符应该颠倒:

我正在使用 ADT 插件 9.0 和 Eclipse 3.6.1。

0 投票
1 回答
6720 浏览

android - 试图启动一个新项目并且找不到 proguard.cfg

在我创建一个新项目之前,eclipse 似乎可以与我的其他项目一起工作。当我尝试创建它时,Eclipse 会弹出一个对话框,提示找不到 C:\android\tools\lib...\proguard.cfg。如果我继续创建项目,则不会生成 R.java。我搜索了 stackover 流程​​并重建项目或进行项目清理不起作用。有什么想法吗?谢谢

0 投票
3 回答
59093 浏览

android - Android:Proguard 的推荐配置是什么?

我正在为 Android 开发应用程序并使用 Proguard 来混淆代码。

目前我正在使用 ProGuard 配置:

要维护用于布局 XML 的自定义组件名称:

要删除调试日志:

为了避免更改布局的 onClick 上调用的方法的名称:

问题是(是):

有没有推荐的其他标签?为什么和为什么?

可以对 proguard.cfg 文件发表评论吗?我想对某些行所做的事情进行评论,以便其他开发人员不会怀疑我添加的原因。

同样在proguard中,是否可以维护文件的注释头(具有版权)?如果不是,或者这不是一个好的政策,我应该在哪里添加版权?

0 投票
1 回答
710 浏览

android - 在 Android 应用程序中使用 ProGuard 和反射 startBluetoothSCO()

我正在使用反射来调用 AudioManager.startBluetoothSco() 方法。它必须通过反射来完成,因为它只存在于 2.2 或更高版本的 SDK 中,但我的应用程序是为 2.0 的最低版本构建的。如果我只是在不使用 ProGuard 的情况下编译我的应用程序,一切都会正常工作——metod 在 2.2 中被正确调用,而在较低版本中则完全没有。但是当我使用 ProGuard 时,它根本不起作用。我假设 ProGuard 配置中有一个 KEEP 语句可以解决这个问题,但我不知道它应该是什么。这是我的代码中的 3 行:

0 投票
1 回答
1232 浏览

android - 运行 proguard 后,Android youtube/gdata api 无法正常工作

有没有人在使用 youtube api 时遇到问题,尤其是在运行 proguard 之后?我从 youtube 获取视频的代码在运行 proguard 之前工作得很好,在运行 proguard 之后我得到了奇怪的异常

我没有在任何地方设置内容类型,而是使用在创建新项目时生成的默认 proguard.cfg 文件。
运行proguard后有没有人遇到过类似的问题?在没有混淆、没有优化的情况下尝试了 proguard,但它给出了相同的结果。

0 投票
2 回答
1060 浏览

android - 仅使用 build.xml 插入构建目标?

如果我单独运行构建目标,我有一个 build.xml 能够编译和优化 - “ant compile”,然后是“and optimize”。

问题是,我想运行“ant release”,它通常会执行生成发布二进制文件所需的一切,但我需要将构建目标插入到链中 - 目标称为“优化”,它运行 proguard 优化/shrinker 在“dex”阶段构建字节码之前针对类文件。

模板文件 /opt/android-sdk-linux_x86/platforms/android-8/templates/android_rules.xml 包含以下规则,我可以修改为“depends="compile,optimize"” 但我不想必须为出现的每个不同的 SDK 重新修改文件(每次都有一个新的 android_rules.xml 文件)。

是否有修改模板 xml 并将所有编译规则放入 build.xml 的替代方法?

0 投票
1 回答
1518 浏览

java - 如何使 Proguard 适应 .jar 并隐藏我的私有方法?

我正在使用 proguard 并隐藏我的代码.. 并且 id 似乎工作......“一半”。我只是希望它不被解码,并且可以工作,并且私人不被 jad 看到..

这是我的java代码

这是我的 .pro 数据

这是我的 jad 输出。

似乎有效,因为私有被修改为另一个方法名称,而其他方法名称则没有,但它已被解码!!!我的 .pro 选项有问题吗?或者..是因为这段代码太简单了吗?

帮帮我吧伙计们;-<

0 投票
8 回答
17713 浏览

android - org.xmlpull.v1.XmlPullParser 的 Android ProGuard 错误

当我的应用程序使用 ProGuard 构建时,它会失败并显示以下消息。我使用由 Android SDK 生成的默认 proguard.cfg 和一些 -libraryjars。我能为它做些什么?

显然,org.xmlpull.v1.XmlPullParser 不是程序类。我已将 ProGuard 更新到最新版本(4.6),但有相同的警告。