Android ProGuard无法访问IntelliJ 11.1中的jarfile .. \ lib \ proguard.jar

时间:2012-03-29 02:44:58

标签: android intellij-idea proguard

从IntelliJ 11.1运行Unable to access jarfile ..\lib\proguard.jar时,我遇到Export Singed Application Package的问题。

环境:

  • 在Android SDK r16中运行proguard 成功
  • 在Android SDK r17中运行proguard 失败

问题是IntelliJ设置错误还是IntelliJ 11错误?

5 个答案:

答案 0 :(得分:35)

修改$ANDROID_SDK\tools\proguard\bin\proguard.bat并将绝对路径设置为PROGUARD_HOME

可能看起来像这样:

SET PROGUARD_HOME="c:\android-sdk\tools\proguard"
java -jar "%PROGUARD_HOME%"\lib\proguard.jar %*

答案 1 :(得分:20)

如果Android SDK路径中的任何位置有空格,也会出现此问题。解决方案是修改$ANDROID_SDK\tools\proguard\bin\proguard.sh。改变这最后一行:

java -jar $PROGUARD_HOME/lib/proguard.jar "$@"

java -jar "$PROGUARD_HOME/lib/proguard.jar" "$@"

答案 2 :(得分:17)

在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" "$@"

答案 3 :(得分:3)

我在Windows机器上发生这种情况的原因是因为我在我的文件系统中移动了Android SDK的位置,但我没有更新我的PROGUARD_HOME系统变量。 PROGUARD_HOME系统变量在{android-sdk}\tools\proguard\bin\project.bat文件中引用。

额外信息:

我的PROGUARD_HOME系统变量的值被设置为旧Android SDK目录中的路径。我将来不应该这样做,因为我现在已经创建了一个ANDROID_HOME系统变量,它指向我的Android SDK,我的PROGUARD_HOME系统变量现在定义如下:

%ANDROID_HOME%\tools\proguard

如果将来重新定位我的Android SDK,我今后要做的就是更新我的ANDROID_HOME系统变量。

答案 4 :(得分:1)

在我更新了工具(26.6.2)+从xp迁移到win7之后,就出现了这个问题。

可能的原因可能是在proguard地方因为某些文件夹可以在其路径文件夹中有空格'名称(例如" Program Files",例如)。 在我的情况下,我做了上面已经指出的,但将整个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 

但&#34; C:\ Program Files \ Android \ android-sdk \ tools \ proguard&#34;