问题标签 [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 回答
2059 浏览

jersey - 无法让 Jersey JAX-RS 资源与 Proguard 混淆的 REST 服务一起使用

请原谅这篇文章的长度。我正在尝试获取其中的所有有用信息,并预测人们可能会遇到的问题。

我有一系列用 Jersey 实现并在 Jetty 中运行的 RESTful Web 服务。 使用未混淆版本的 jar 文件一切正常。但是当我使用 Proguard 进行混淆时,我收到一条 500 错误消息

作为我的软件包的一部分,我有一个非常简单的 ping 服务,这样我就可以测试连接性和基本的 Jersey 配置。

我用球衣启动码头的代码如下所示:

当我尝试从浏览器访问我的 ping url 时,调试日志显示以下几行:

所以我认为码头的配置和运行是正确的。就像我说的,这个应用程序的未混淆版本运行良好。

当我尝试 ping 时出现的堆栈跟踪出现在此帖子的底部,但最令人不安的是:

我的 proguard 配置看起来像这样(为简洁起见,删除了注释)。请注意,当我调用 jar -tvf obfuscated.jar 时,我会在那里看到类 com.sw.pr.HQServerResource.class 文件。

我的 ping 资源类如下所示:

由于我对Proguard的不熟悉,现在我将进入我的猜测阶段。

我认为我的问题归结为 Proguard 在我的类文件中混合了我的 @Path 注释。但是我的 proguard 配置文件中有指令(-keepattributes Annotation)。因此,我现在迷路了。

任何指导将不胜感激。

堆栈跟踪:

[java] com.sun.jersey.api.container.ContainerException:ResourceConfig 实例不包含任何根资源类。[java] 在 com.sun.jersey.server.impl.application.RootResourceUriRules.(RootResourceUriRules.java:103) [java] 在 com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1182 ) [java] 在 com.sun.jersey.server.impl.application.WebApplicationImpl.access$600(WebApplicationImpl.java:161) [java] 在 com.sun.jersey.server.impl.application.WebApplicationImpl$12.f(WebApplicationImpl .java:698) [java] 在 com.sun.jersey.server.impl.application.WebApplicationImpl$12.f(WebApplicationImpl.java:695) [java] 在 com.sun.jersey.spi.inject.Errors.processWithErrors( Errors.java:197) [java] 在 com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:

0 投票
4 回答
3266 浏览

android - Android:Proguard NoSuchMethodError

我最近为我的 Eclipse Android 项目激活了 ProGuard。将外部库和动态引用的类添加到 proguard.cfg 后,我在构建 apk 时没有收到任何错误。但是,当我尝试启动已安装的应用程序时,我得到了 NoSuchMethodError。

我将其缩小到在主要活动的 onCreate 方法中调用的特定方法。为简化起见,下面是类和方法的样子(我省略了很多代码,但我认为这应该说明它):

testMethod() 定义如下:

当我删除“someEditText.length()”部分时,应用程序启动。所以,在我看来,找不到的方法是 EditText.length() 方法。但奇怪的是,当我从 testMethod 中删除“someEditText.length()”并将其直接放入 onCreate 方法时,该应用程序也会启动:

有谁知道我如何摆脱这个错误以及为什么我可以直接在 onCreate 方法中调用 someEditText.length() 而不是在 onCreate 方法调用的方法中?当然,如果不使用 Proguard,该应用程序也可以正常工作。

编辑:我尝试了 proguard.cfg 中的 -dontshrink、-dontobfuscate 和 -dontoptimzie 选项。使用 -dontoptimize 应用程序启动时不会出现错误。不过,究竟是什么导致了这个特定的错误,这还是很有趣的。

0 投票
5 回答
91570 浏览

android - 在 Eclipse for Android 中启用 ProGuard

ProGuard for Android的新文档说要在项目主目录的 default.properties 文件中添加一行。但是,在打开此文件时,我在顶部阅读:

我错过了什么吗?

另外,有没有办法只为来自 Eclipse 的生产构建启用 ProGuard(即,在导出成品时)?

0 投票
1 回答
1918 浏览

java - android:proguard混淆导入的罐子

我制作了一个 IM 客户端,它使用 asmack .jar 库与 google IM 服务服务器进行通信。

现在我正在尝试从 eclipse 中导出我的应用程序并使用 proguard 工具来混淆我的类。问题是,在导出项目并运行它之后,我无法登录到谷歌,因为我从 asmack 库中得到
了错误......其中一个错误:01-21 09:52:19.602: WARN/System.err(24297): java.lang.UnsupportedOperationException: java.lang.NoSuchMethodException: values 我还得到了 NoSuchClassException 和一些来自 asmack 的包名称。

我必须进行哪些设置才能完成这项工作?谢谢!

0 投票
3 回答
4074 浏览

android - Android ADT、Proguard 和外部 Jar 的问题

所以,我试图让 ADT 的内置 proguard 实现适用于我的应用程序。不幸的是,它似乎对我引用的第三方库中的各种类感到窒息。我已经尝试了各种(如果不是全部)我能想到的 -libraryjars 和 -keep 公共类行的组合,但这一切都不好。我对 Proguard 没有那么丰富的经验,所以老实说,我不知道我哪里出错了。我试过谷歌,但大部分信息都与 Ant 脚本有关。

我尝试过的一些事情:

  • 文件顶部或底部的 -libraryjars C:\Users\Dave\workspace\Dropbox_Sync_for_Tasker_and_Locale\lib\apache-mime4j-0.6.jar 等行

  • 试图相对地创建通往罐子的路径的线路,根本没有成功。

  • 像 -keep public class org.apache.commons.logging.LogFactory 这样的行

  • 引用错误行的另一部分的行,例如 -keep public class org.apache.james.mime4j.field.MailboxListField

无论如何,错误日志是一堵巨大的文字墙,所以我把它放在了一个 pastebin here上。

0 投票
3 回答
7761 浏览

android - 如何通过 Eclipse 使用 Proguard 混淆 apk?

我添加proguard.config=proguard.cfg到我的 default.properties 文件并在我的项目根目录中有一个 proguard.cfg 文件。如果我现在在 Eclipse 中使用 Export as Android Application,我会收到以下错误:

似乎我的类以某种方式保存在一个类子文件夹中,但 Proguard 使用这个类子文件夹作为一个包。因此,Proguard 无法理解类的定义。

这是我的 SDK 设置的问题吗?还是我的 Proguard 配置中有错误导致此问题?

0 投票
4 回答
94489 浏览

android - 使用 proguard 时如何保留/排除特定的包路径?

我想从 ProGuard 中排除一些文件路径。例子com.myapp.customcomponents

我怎样才能做到这一点?我讨厌为这个目录中的每个自定义组件文件放置 -keep 标志。

我尝试了以下方法,但它不起作用:

0 投票
1 回答
2793 浏览

java - 使用 ProGuard 混淆 GWT Web 应用程序

我正在尝试使用 Proguard 混淆我的 GWT (Vaadin) 应用程序。我以前从未混淆过 java 代码,这是我第一次尝试使用 Proguard。

我的配置文件设置如下:

然后我使用 proguard 命令执行:

我没有收到配置文件的任何错误,但确实收到了很多警告。输出文件已创建,但我担心警告。我需要在我的配置文件中指定更多的 jar 文件吗?我已经列出了我在我的应用程序中使用的所有 jar。还有什么我做错了吗?

下面是命令行输出的最后 20~ 行的截图

提前致谢

S。

0 投票
5 回答
18146 浏览

android - Android Proguard java.io.IOException:无法读取 [proguard.ClassPathEntry

大家好当为android启用proguard时,在构建签名的jar时,我得到以下转储:

在网上找不到任何相关的东西。有任何想法吗?

0 投票
1 回答
1873 浏览

android - android:任何人都可以发送链接或文件 proguard.cfg 以供下载

我在最新更新后遇到了 eclipse 和 android sdk 的问题,
我的问题是任何人都可以发送或分享这个文件 proguard.cfg,所以我们不再下载同一个 sdk 吗?