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?

Android 和 AWS Cognito - 无法使用 proguard 解组错误响应

Android Studio 更新后 ProGuard 无法正常工作