Android ProGuard 无法在 IntelliJ 11.1 中访问 jarfile ..\lib\proguard.jar
Posted
技术标签:
【中文标题】Android ProGuard 无法在 IntelliJ 11.1 中访问 jarfile ..\\lib\\proguard.jar【英文标题】:Android ProGuard Unable to access jarfile ..\lib\proguard.jar in IntelliJ 11.1Android ProGuard 无法在 IntelliJ 11.1 中访问 jarfile ..\lib\proguard.jar 【发布时间】:2012-04-12 16:33:57 【问题描述】:从 IntelliJ 11.1 运行 Export Singed Application Package
时,我遇到了关于 Unable to access jarfile ..\lib\proguard.jar
的问题。
环境:
在 android SDK r16 中运行 proguard 成功。 在 Android SDK r17 中运行 proguard 失败。问题是 IntelliJ 设置错误还是 IntelliJ 11 错误?
【问题讨论】:
【参考方案1】:编辑$ANDROID_SDK\tools\proguard\bin\proguard.bat
并将绝对路径设置为PROGUARD_HOME
可能看起来像这样:
SET PROGUARD_HOME="c:\android-sdk\tools\proguard"
java -jar "%PROGUARD_HOME%"\lib\proguard.jar %*
【讨论】:
它现在可以工作了,谢谢,我已经标记了你的答案,因为它已经用完整的 SET 命令清楚地解释了。虽然请改成。 SET PROGUARD_HOME= "%ANDROID_HOME%"\tools\proguard【参考方案2】:如果您在 Android SDK 路径中的任何位置都有空格,也会出现此问题。解决方法是修改$ANDROID_SDK\tools\proguard\bin\proguard.sh
。更改最后一行:
java -jar $PROGUARD_HOME/lib/proguard.jar "$@"
到
java -jar "$PROGUARD_HOME/lib/proguard.jar" "$@"
【讨论】:
这解决了我在 OSX 上使用默认 Android Studio/ProGuard 设置的问题。 当你在它的时候,你应该在同一目录下修改proguardgui.sh和retrace.sh 这有效,在我安装 Android Studio 的情况下,它安装为“Android Studio.app”(注意空格)现在到更多 ProGuard Hell,因为它无法找到引用。 现在显示“错误:无法访问 jarfile $PROGUARD_HOME/lib/proguard.jar”。 :( 1+ 我将 Eclipse 从 32 位切换到 64 位 ubuntu 并遇到了同样的问题。但以上解决了它。谢谢:)【参考方案3】:在 Mac 上:
/Applications/Android Studio.app/sdk/tools/proguard/bin/proguard.sh
更改最后一行:
java -jar $PROGUARD_HOME/lib/proguard.jar "$@"
到
java -jar "$PROGUARD_HOME/lib/proguard.jar" "$@"
【讨论】:
1+ 我将 Eclipse 从 32 位切换到 64 位 ubuntu 并遇到了同样的问题。但以上解决了它。谢谢:) 请在这篇文章中提供您的意见。 ***.com/q/32783837/1503130 挣扎了几个小时。【参考方案4】:在我的 Windows 机器上发生这种情况的原因是我在文件系统中移动了 Android SDK 的位置,但我没有更新我的 PROGUARD_HOME
系统变量。 PROGUARD_HOME
系统变量在android-sdk\tools\proguard\bin\project.bat
文件中被引用。
额外信息:
PROGUARD_HOME
系统变量的值被设置为旧 Android SDK 目录中的路径。我以后不应该遇到这种情况,因为我现在创建了一个指向我的 Android SDK 的 ANDROID_HOME
系统变量,并且我的 PROGUARD_HOME
系统变量现在定义如下:
%ANDROID_HOME%\tools\proguard
如果我将来重新定位我的 Android SDK,我所要做的就是更新我的 ANDROID_HOME
系统变量。
【讨论】:
是的,似乎这就是解决方案,根据报告的这个问题:code.google.com/p/android/issues/detail?id=66733。这是一张显示应该做什么的图片:android.googlecode.com/issues/…【参考方案5】:在我更新工具 (26.6.2)+ 从 xp 迁移到 win7 后出现此问题。
可能的原因可能在 proguard 位置,因为某些文件夹的路径文件夹名称中可以有空格(例如“程序文件”)。 就我而言,我做了上面指出的操作,但将整个 proguard 文件夹复制到了新位置(我的新文件夹变成了“c:\proguard”)并将其路径放到 PROGUARD_HOME
SET PROGUARD_HOME="c:\proguard"
在 $ANDROID_SDK\tools\proguard\bin\proguard.bat 文件中。
另一种可能的方式: 工具升级后,我找到了非常简单的解决方案: 查找环境变量 Windows 上的 PROGARD_HOME 并编辑其路径 (在我的情况下,目前):
not C:\Program Files\Android\android-sdk\tools\proguard
但是“C:\Program Files\Android\android-sdk\tools\proguard”
【讨论】:
以上是关于Android ProGuard 无法在 IntelliJ 11.1 中访问 jarfile ..\lib\proguard.jar的主要内容,如果未能解决你的问题,请参考以下文章
无法在发布模式下启动 Activity(使用 proguard-android-optimize 配置)
Android Studio 无法在 proguard 错误配置中生成签名的 APK
在 Android Studio 中使用 ProGuard 时我无法构建应用程序
Android Studio & ProGuard:无法解析符号 getDefaultProguardFile?