java - 混淆时遇到麻烦

标签 java ant java-me obfuscation proguard

我正在使用 Antenna 来构建、打包和混淆 j2me 应用程序。 构建和打包工作正常。

该项目使用了第 3 方 jar,除了某些接口(interface)之外,该 jar 已经被混淆。

当尝试混淆时,我遇到了几个错误,例如:

[wtkobfuscate] Warning: i: can't find referenced class fooPackage.fooClass

Class i 和 fooPackage.fooClass 来 self 提到的第 3 方 jar。

更新:

此第 3 方库使用 j2me-xmlrpc.jar。如果我不将所有内容打包在一起,那么我将无法混淆第 3 方接口(interface)和 j2me-xmlrpc.jar。 (我无法以这种方式运行应用程序,不知道为什么)

如果我只打包 j2me-xmlrpc.jar 和我的项目类,我在混淆时会收到此错误

[wtkobfuscate] Warning: there were 2 instances of library classes depending on program classes.

更新2:

我知道这种混淆是可能的,因为在 Netbeans 中我可以使用 Proguard 进行混淆。

由于 Netbeans 内部使用 ANT 进行构建,我尝试将生成的 build.xml 复制到我自己的 build.xml。

为了进行混淆,Netbeans 使用可在 Netbeans 外部使用的库 org-netbeans-modules-mobility-antext.jar。我将此库导入到我的项目中并使用它没有问题。

但是我得到了与使用天线相同的错误。

在 Netbeans 中进行混淆会生成大量警告,但仍会生成混淆的 jar。

我缺少什么?

最佳答案

如果第 3 方库被混淆,请在混淆类时不要包含该库。而是按照以下步骤操作

  1. 单独打包您的类(不包括第 3 方库)
  2. 对步骤 1 中获得的 jar 进行混淆
  3. 将第 2 步中获得的混淆 jar 和某个临时文件夹中的第 3 方库解压
  4. 打包所有未打包的类
  5. 预验证并再次打包

关于java - 混淆时遇到麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/972126/

相关文章:

ant - 如何将 Ant 路径转换为文件集?

svn - 全局定义 svnSetting

java - 如何在 Java 中的 ISO-8859-1 和 UTF-8 之间进行转换?

java - J2ME 中的同步

java - IDP 在现有应用程序中启动了 SSO 实现

java - 下面论文中的图像梯度是什么意思?

java - 替换ListView的 'column'中的数据

java - RESTfull Jersey 应用程序,请求的资源不可用

java - Ant 中的重用和执行控制

java-me - 如何为Dialog设置背景图片?