我刚刚更新到Android SDK工具修订版12,我的应用程序无法使用之前的Proguard设置导出。我收到了“转换为Dalvik格式失败,错误1”,我使用的唯一库是“jcifs”。我尝试过清理和重建,创建一个新项目,然后重新组装,我相信我几乎可以在互联网上阅读任何内容。 这是这个新SDK的新bug吗?如果您的项目使用Proguard,我建议暂时不要更新。
更新1: 我还尝试使用proguard set导出一个简单的Hello应用程序,仍然是相同的消息。看起来这个版本的SDK工具已经破坏了。
更新2: 我必须删除SDK目录中的整个工具文件夹,并将SDK工具修订版11的备份复制到其中。至少我可以回去工作并再次出口proguard作品。我希望这些信息可以帮助处于相同情况的人。我仍然不知道发生了什么,希望有人可以解释这个恼人的问题。
更新3: 我在这里报告了这个问题: http://code.google.com/p/android/issues/detail?id=18359 希望有人好好看看这个问题,如果你在开发过程中使用Proguard,那么你将被建议不要使用这个版本。
答案 0 :(得分:26)
问题是由文件[Android SDK安装目录] \ tools \ proguard \ bin \ proguard.bat中的R12中的ProGuard命令行引起的。只需编辑以下行就可以解决问题。
更改
call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*
到
call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
答案 1 :(得分:3)
我下载了Proguard 4.6并将/ lib和/ bin的内容复制到/ tools / proguard /中修复了问题。
答案 2 :(得分:2)
我发现这个问题的唯一解决方案是在proguard.cfg
中进行更改-optimizationpasses 5
到
-optimizationpasses 2
答案 3 :(得分:2)
Android SDK Tools Rev 16试图遇到同样的问题 从Mac OS X 10.7.2上的Helios Eclipse 3.6导出已签名的应用程序包 在Samsung Galaxy Nexus 4.0.2 build ICL53F上执行
问题:
[2012-01-11 03:15:46 - Chapter 8 Where Am I] Proguard returned with error code 1. See console
[2012-01-11 03:15:46 - Chapter 8 Where Am I] proguard.ParseException: Unknown option '8' in argument number 9
[2012-01-11 03:15:46 - Chapter 8 Where Am I] at proguard.ConfigurationParser.parse(ConfigurationParser.java:170)
[2012-01-11 03:15:46 - Chapter 8 Where Am I] at proguard.ProGuard.main(ProGuard.java:491)
解决方案:
cd /Applications/android-sdk-mac_x86/tools/proguard/bin
然后按如下方式修改文件proguard.sh
:
# java -jar "$PROGUARD_HOME"/lib/proguard.jar "$@"
java -jar "$PROGUARD_HOME"/lib/proguard.jar "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8"
答案 4 :(得分:0)
我刚刚通过从http://dl.google.com/android/installer_r11-windows.exe下载R11安装程序并将\ tools目录替换为以下内容来解决此问题:
运行下载的安装程序
指定与常规安装不同的目标文件夹,然后单击“安装”
最后,您可以取消选中“启动SDK Manager ...”,然后单击[完成]
安装程序将在该文件夹中创建一个\ tools目录
重命名常规的“\ android-sdk-windows \ tools”目录,并将\ tools目录复制到常规的“\ android-sdk-windows \”目录。
该项目现在应该在没有“错误1”的情况下建立
我还没有看过2个目录中的不同之处。
答案 5 :(得分:0)
根据建议更改proguard.bat对我的情况没有帮助。升级到proguard 4.6也没有帮助。帮助我的是,我不得不将Android SDK工具降级为修订版11 。 注意:运行SDK Manager并安装软件包时,我没有安装软件包“Android SDK Tools,revision 12”。
更新:
我尝试使用Android SDK修订版15,但问题仍然存在。现在,这种降级为版本11 的解决方法不再适用,因为SDK Manager用于下载软件包的URL不再起作用。
在尝试不同的解决方案2天后,升级到proguard 4.6确实有帮助。
答案 6 :(得分:0)
Android SDK工具Rev 16附带ProGuard 4.4
,但存在此问题。我通过替换android-sdk \ tools \ proguard文件夹中的文件升级到4.7,并为我解决了问题。
由于
答案 7 :(得分:0)
它对我有用。正如Michiel所建议的,我从proguard 4.6中替换了proguard.bat,现在我可以导出已签名的应用程序而不会出现错误。谢谢你的队友。