问题标签 [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 投票
3 回答
15362 浏览

android - 导出已签名、混淆的 Android 应用程序时,如何在 Eclipse 中设置 ProGuard?

我正在发布一个在 Eclipse 中开发的 Android 应用程序,如标题中所述,我想将 Proguard 混淆集成到构建中,特别是用于导出签名的应用程序。

有没有人走上蚂蚁之路的运气?

0 投票
1 回答
4095 浏览

java - 使用 ProGuard 混淆代码

我选择了 ProGuard,这是我配置它的选项:

收缩

选项:

  • 收缩

保持:

  • 应用
  • 小程序

同时保持:

  • 枚举
  • 数据库驱动程序
  • Swing UI L&F

混淆

选项:

  • 混淆(呃!:P)
  • 积极超载
  • 使用唯一的类成员名称
  • 使用混合大小写的类名
  • 扁平化包层次结构
  • 重新打包类

保留姓名:

  • 本机方法名称
  • .class 方法名称

优化

选项:

  • 优化
  • 积极合并接口

消除:

  • [选中所有框]

信息

预验证和定位:

  • 预验证

一致性和正确性:

  • 注意配置中的潜在错误
  • 警告可能的错误输入
  • 跳过非公共图书馆班级成员

当我拿起罐子并将其放置为:

启动时出现此小程序错误:

这是混淆之前的 jar 文件内部的内容clientOffline.jar

这是混淆后的 jar 文件newOne.jar

我希望这足以帮助我解决这个问题。我究竟做错了什么?

0 投票
1 回答
10124 浏览

android - 如何关闭除混淆之外的所有 Android ProGuard 功能?

谷歌建议开发人员可能想要混淆字节码:

http://android-developers.blogspot.com/2010/09/proguard-android-and-licensing-server.html

我按照 Google 的说明获得了一个混淆的 Android 应用程序,乍一看,它似乎可以工作。但是引入了一些奇怪的错误,这些错误不在未混淆的应用程序中。我一直关闭 ProGuard 选项以获取此配置:

-dontoptimize -dontshrink -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose

仍然存在错误。还有什么我可以关闭以仅获得纯粹的混淆吗?混淆会很好,但我愿意关闭 ProGuard 的其他功能。

0 投票
5 回答
1596 浏览

java - 如何设置一个好的java构建环境?

Java/Eclipse。开发工作正常。我们有用于构建服务器的 Windows 或 FreeBSD。

部署虽然我想做以下事情(以一种非常自动化的方式):

1:从源代码控制中删除所有内容(perforce)

2:使用可配置的javac和参数构建所有源代码(和所有依赖项目)(我们想看看不同的编译器是否会影响性能)

3:运行proguard

4:将所有资源(.class、“res/”目录、外部.jars等)打包成一个jar。

5:创建一个.jnlp web start

6:创建本机 Windows 安装程序(有什么建议吗?)

7) 对于我们的 android 应用程序 4/5 应该构建/登录到可部署的 android 包中

我们已经尝试过 ant,但看起来非常笨重且容易出错。也许最好的方法就是编写所有脚本?似乎应该已经有一个很好的方法来做到这一点。

0 投票
5 回答
32933 浏览

android - 如何在 Android 上使用混淆(使用 ProGuard)应用程序进行调试?

当我得到这样的东西

我怎样才能知道问题出在哪里并调试这个问题?我只得到了 ProGuard 的映射输出,不知道行号。谢谢。

0 投票
3 回答
4067 浏览

java - 将 ProGuard 与 Android 一起使用。

我正在尝试将 ProGuard 与 Android 一起使用。我找到了几个可以使用的 ProGuard 脚本,以下是一个示例(我发现了其他几个相同或非常相似的脚本)。但是,当我尝试使用此脚本运行 ProGuard 时,出现错误:

“在 ';' 之前期望 java 类型 在文件的第 23 行..."

我对 ProGuard 完全陌生。有人可以解释这里出了什么问题

谢谢。

0 投票
2 回答
3391 浏览

android - Proguard、Android 和抽象类实例化

“抽象类实例化,”你说。“不可能的!”

这是我的代码:

com.bat.baz.FooBar 是一个扩展 AbstractFoo 的私有类。如果没有 Proguard,此代码将在我的 Android 设备上运行。有了它,它在 NoSuchMethodException try/catch 上失败。

我继续在我的 Proguard 配置文件中添加语句,例如

但这并不能解决问题。如何让 Proguard 接受这是实例化 AbstractFoo 对象的有效方法?至少,如果它在没有 Proguard 的情况下工作,它应该与它一起工作。

0 投票
2 回答
2043 浏览

android - 使用 IntelliJ IDEA 时如何轻松混淆 Android 应用程序?

我想有两种选择:

  1. 构建一个并行的 ANT 脚本并绕过 IDE(当 IDE 非常好时,似乎效率很低)

  2. 以某种方式将 Proguard/yGuard 或类似的东西与 IntelliJ 集成

我已经尝试将 Proguard/yGuard 的插件安装到 IntelliJ 中,但似乎都没有工作(安装正常,但没有出现在 Facets 下),实际上我不是 100% 确定这些插件会帮助我混淆,或者它们是否只是为调试提供去混淆工具。

我认为 ANT 是最好的路线,但会感谢您的想法。我只是想要一种方法来减少某人对应用程序进行逆向工程的机会,但无需花费数小时进行设置。

0 投票
6 回答
7240 浏览

android - Proguard 错误:期望类路径分隔符 - 不确定我需要在哪里将路径放在引号中

错误:

我完全意识到我的问题是我在 c:\program files\eclipse 目录中有 eclipse+android - 'program' 和 'files' 之间的空间导致了这个问题。

我也知道解决方案是将这条路径放在引号中。

我的问题是在哪里放置这些引号。我有点 ANT 菜鸟:并且正在遵循我在这里找到的方向:http ://android-developers.blogspot.com/2010/09/proguard-android-and-licensing-server.html

我目前正在尝试更多地了解 ANT 如何与 PROGUARD 一起工作以知道在哪里用引号包裹路径 - 以及如何(我担心它在 XML 中并且不确定会发生什么样的处理来转义字符ETC)

我有一个备份计划将所有内容从“程序文件”中移出 - 但我真的很想正确解决这个问题,并且觉得移动项目是一种黑客/承认失败。

0 投票
2 回答
2008 浏览

spring - 将 Proguard 与按名称使用 Spring @Autowired 的库一起使用

我正在使用 Proguard 来混淆具有多个 @Autowired 字段的库。混淆器正在重命名这些类字段(因为它们是类的私有/内部),因此我的 bean 无法实例化。

预混淆:

后混淆:

现在可能有很多方法可以使这些特定字段不自动连接,但我希望找到一种方法来告诉 Proguard 不要混淆任何带有重要 Spring-isms 注释的内部字段(@Autowired 等) .

任何人都知道我通常如何做到这一点?

授予