12

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

[2011-02-03 11:28:27 - VideoCreator] Proguard returned with error code 1. See console
[2011-02-03 11:28:27 - VideoCreator] java.io.IOException: Can't read [proguard.ClassPathEntry@49b290] (No such file or directory)
[2011-02-03 11:28:27 - VideoCreator]    at proguard.InputReader.readInput(InputReader.java:230)
[2011-02-03 11:28:27 - VideoCreator]    at proguard.InputReader.readInput(InputReader.java:200)
[2011-02-03 11:28:27 - VideoCreator]    at proguard.InputReader.readInput(InputReader.java:178)
[2011-02-03 11:28:27 - VideoCreator]    at proguard.InputReader.execute(InputReader.java:100)
[2011-02-03 11:28:27 - VideoCreator]    at proguard.ProGuard.readInput(ProGuard.java:195)
[2011-02-03 11:28:27 - VideoCreator]    at proguard.ProGuard.execute(ProGuard.java:78)
[2011-02-03 11:28:27 - VideoCreator]    at proguard.ProGuard.main(ProGuard.java:499)

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

4

5 回答 5

7

ProGuard 找不到(或读取)其中一个输入 jar。如果您安装 ProGuard 4.5.1 而不是 4.4,它将打印出正确的文件名,因此您可以找出它丢失的原因。

于 2011-02-05T01:06:07.880 回答
5

下载最新的 ProGuard 并用您下载的新文件夹替换基本 sdk 工具文件夹(例如 c:/android-sdk/tools/proguard)中现有的 lib 文件夹。

就像 Eric 说的那样,它会告诉你缺少什么。您很可能在 -libraryjars 命令中使用了错误的路径。尝试删除

于 2011-06-02T19:29:37.000 回答
3

更新 ProGuard 确实有助于追查问题。就我而言,这与我的 Mac 上的 JDK 配置有关,而 rt.jar 和 jsse.jar 文件不在通常的位置。

我在这里找到了解决方案。

cd $JAVA_HOME/lib
sudo ln -s ../../Classes/classes.jar rt.jar
sudo ln -s ../../Classes/jsse.jar .
于 2012-02-09T20:40:44.720 回答
2

检查 .jar 的路径名中是否有空格。我刚刚遇到同样的问题,升级到 ProGuard 4.6 并在错误消息中获得了更多信息,但问题仍然存在。然后我想可能是因为路径名中的空格,我将路径名中的所有空格字符替换为“-”,ProGuard 再次像魅力一样工作:)

于 2011-11-14T05:12:13.577 回答
0

在 JDK1.8 中,两个 JAR 文件位于与 Proguard 期望它们不同的位置,通过符号链接修复它:

cd $JAVA_HOME/lib
sudo ln -s ../jre/lib/rt.jar 
sudo ln -s ../jre/lib/jsse.jar
于 2019-03-25T11:23:37.360 回答