3

我有一个库项目,当在 Eclipse 中作为ADT工具链的一部分导出时,它通过Proguard处理得非常好。

但现在我想直接在库 jar 上手动运行 Proguard ,如此线程中的步骤 #3 中所述。

因此,将库 jar 复制到libs/文件夹后,我运行:

java -jar C:/adt-bundle-windows-x86_64/sdk/tools/proguard/lib/proguard.jar @../bin/proguard.txt  -verbose -injar mylibproj.jar 

我得到的回报是关于无数(或多或少)这样的警告消息:

Warning: com.unilj.mylib.FancyDialog: can't find referenced class java.lang.String

为什么我会收到这个(我做错了什么?),我该如何解决?

谢谢。

4

1 回答 1

3

查看您运行的命令,看起来您缺少重要的部分-libraryjars,例如

-libraryjars c:/adt-bundle-windows-x86_64/sdk/platforms/android-17/android.jar 

如果您正在使用其他库,则可能还需要包含它们。要找出您正在使用的库,请返回 Eclipse > Project Properties > Java Build Path > Libraries 并检查Android Dependencies

另外,不要忘记在您的 bin/classes 中引用您的*.java(最显着的):R.java

-injars ../bin/classes

有关更多信息,请查看ProGuard 手册的故障排除部分

于 2013-07-30T02:31:54.400 回答