从命令行运行时,Proguard无法找到引用的类

时间:2013-07-28 18:00:18

标签: adt proguard

我有一个库项目,当在Eclipse中作为Proguard工具链的一部分导出时,可以通过ADT很好地处理。

但现在我想按步骤#3 in this thread中的说明直接在库jar上手动运行Proguard。

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

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

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

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

为什么我收到这个(我做错了什么?)以及如何解决?

感谢。

1 个答案:

答案 0 :(得分:3)

查看您运行的命令,看起来您错过了-libraryjars的重要部分,例如

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

如果您使用其他库,您可能也想要包含它们。要找出您正在使用的库,请返回Eclipse>项目属性> Java构建路径>图书馆并检查 Android依赖关系

此外,请不要忘记在您的bin / classes中引用*.java(最值得注意的是R.java):

-injars ../bin/classes

有关详细信息,请查看ProGuard手册的Troubleshooting section