在 Eclipse 中使用 Proguard for Android 出错
Posted
技术标签:
【中文标题】在 Eclipse 中使用 Proguard for Android 出错【英文标题】:Using Proguard for Android in Eclipse got Error 【发布时间】:2011-05-24 04:54:04 【问题描述】:我已经全新安装了 Eclipse 和所有最新的 android 工具,并希望在现有项目上使用 Proguard,但现在我创建了一个新的空白工具。
我在我的项目中添加了一个proguard.cfg
文件
将proguard.config=proguard.cfg
添加到我的default.properties
现在当我尝试导出时出现以下错误
[2010-12-12 10:36:35 - ApplicationTest] Proguard returned with error code 1. See console
[2010-12-12 10:36:35 - ApplicationTest] 'C:\Program' is not recognized as an internal or external command,
[2010-12-12 10:36:35 - ApplicationTest] operable program or batch file.
[2010-12-12 10:36:35 - ApplicationTest] '-jar' is not recognized as an internal or external command,
[2010-12-12 10:36:35 - ApplicationTest] operable program or batch file.
我知道这意味着文件路径设置不正确,问题是我查看了一般属性和项目属性,看不到任何对 proguard 或混淆的引用,所以我坚持要更改的内容
任何帮助表示赞赏。
【问题讨论】:
请标记 Asmo Soinio 的答案正确。 ***.com/questions/6638713/… 【参考方案1】:您需要定义不带空格的 Android SDK 路径。从马克的这个答案中复制和粘贴:
Proguard error: Expecting class path seperator - not sure where I need to put a path in quotes
是的,这对我有用。说起来 具体来说:
在 Eclipse 中:窗口 > 首选项 > Android > SDK位置
使用类似的东西 c:\Progra~1\android-sdk(或者在 64 位上可能是 c:\Progra~2\android-sdk)
对我来说路径是"c:\Progra~1\Android\android-sdk-windows"
【讨论】:
如果我启动了这个线程,就会得到绿色的勾号。 ;)。 恕我直言,这是最快、更有效的解决方案。 太棒了!顺便说一句,如果您将 Android 安装到 C:\Program Files (x86)\ 然后使用 c:\Progra~2\【参考方案2】:根据谷歌工程师在此处的线程中发布的 cmets: http://groups.google.com/group/android-developers/browse_thread/thread/19b96902fc20cede
ProGuard 附带的*.bat 文件不支持带空格的路径。
在没有空格的路径上安装 Java 和 Android SDK 并不能完全解决问题。如果 Eclipse 工作区、临时文件夹或某些外部 JAR 文件的路径也包含空格,则可能会出错。
我懒得重新安装所有东西,所以我的解决方法是在文件系统上创建连接点。
【讨论】:
如果有人遇到这个问题而不知道什么是连接点,就像我一样,请查看它们,因为它们比尝试移动 eclipse 和 sdk 更容易。如果您有 windows vista 或更高版本,请查看 mklink。连接点基本上允许您创建硬快捷方式,以便您可以链接到当前目录位置,但使用新名称。例如:您可以创建一个名为 C:/Android/ 的连接点文件夹链接到您的 C:/Android 目录,其中包含空格/然后您无需移动任何内容。感谢 Viktor 的建议。 另外,为了节省其他人的时间...您必须更改 eclipse 设置以使用 sdk 的新位置(Eclipse:Window > Preferences > Android > SDK Location)并更改您的项目,这可能意味着将它们从工作区中移除并使用新路径重新导入。 howtogeek.com/howto/windows-vista/… - 很棒的教程【参考方案3】:我只是在根目录中重新安装了 JAVA 和 ANDROID,而不是在程序文件中的默认路径下,并且一切正常
【讨论】:
【参考方案4】:有没有办法在 proguard 配置文件中指定自己到 Java 和 Android SDK 的直接路径?
【讨论】:
【参考方案5】:这个问题似乎在 ADT 12 中得到解决。main_rules.xml 中的以下更改解决了这个问题,应该包含在 ADT 12 中:https://review.source.android.com/#change,22791。
我可以验证在 your_sdk_path/tools/ant 下载固定版本并替换 sdk 附带的副本可以解决此问题。
【讨论】:
【参考方案6】:好的,现在我找到了解决此问题的一种方法 1、设置“PROGUARD_HOME”EVN PATH到\tools\proguard 2、重启eclipse 3、现在可以正常使用了!
【讨论】:
【参考方案7】:我将 SDK 路径更改为 8.3 格式,并将 proguard.bat 中的 proguard.jar 文件夹更改为 8.3 格式,现在一切正常!
【讨论】:
以上是关于在 Eclipse 中使用 Proguard for Android 出错的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Eclipse 使用 Proguard 混淆 apk?
如何在 Eclipse 中使用 Proguard 混淆 Android 库(.jar 文件)
如何在 Eclipse 和调试模式下使用 proguard?
导出已签名、混淆的 Android 应用程序时,如何在 Eclipse 中设置 ProGuard?