我刚升级到最新的ADT(19),我再次收到来自ProGuard的投诉,但这次比平常更糟糕。我已经阅读了很多关于这个错误的问题,但这次答案都没有。
当我尝试导出已签名的APK时,控制台会说:
Proguard返回错误代码1.请参阅控制台
错误:@C:\ Users \ Barry \ AppData \ Local \ Temp \ android_8523956309172274256.pro(文件名,目录名或卷标语法不正确)
我确认该文件存在(I read elsewhere @是错误消息的一部分,而不是文件名的一部分)。我认为这个错误是抱怨文件路径,而不是文件内容,但以防万一我已经包含了下面的内容。
编辑:我在ProGuard文档中确认@应该在那里。它是命令行语法的一部分。
过去,我通过更改proguard.bat as this thread recommends中的“%@”参数来升级ADT后修复了ProGuard错误。上面的错误对我来说是全新的。我只找到了另一份报告in this thread,但海报通过升级到ProGuard 4.8来修复它。对我来说没有这样的运气。 :(
提前感谢...
编辑:当我使用上面的输入jar手动运行ProGuard时,由于丢失了jar,它报告了丢失的类(尽管我从未在控制台中看到过这种情况)。问题是我仍然不知道为什么ProGuard或ADT生成缺少jar的.pro文件,因为它们在我的构建路径上并且使用了之前的ADT。
上述文件的内容:
C:\用户\百里\ dev的\工作空间\ MY-PROJECT \ proguard.cfg
-injars C:\ Users \ Barry \ AppData \ Local \ Temp \ android_824795077905177388.jar; C:\ Users \ Barry \ dev \ workspace \ KeyboardLib \ bin \ keyboardlib.jar; C:\ Users \ Barry \ dev \ Android的SDK \工具\支持\ annotations.jar
-outjars C:\ Users \ Barry \ AppData \ Local \ Temp \ android_2943979964980515538.jar
-libraryjars C:\ Users \ Barry \ dev \ android-sdk \ platforms \ android-10 \ android.jar
-dump C:\ Users \ Barry \ dev \ workspace \ MY-PROJECT \ proguard \ dump.txt
-printseeds C:\ Users \ Barry \ dev \ workspace \ MY-PROJECT \ proguard \ seeds.txt
-printusage C:\ Users \ Barry \ dev \ workspace \ MY-PROJECT \ proguard \ usage.txt
-printmapping C:\ Users \ Barry \ dev \ workspace \ MY-PROJECT \ proguard \ mapping.txt
上面的所有jar文件都存在并包含.class文件,但outjar文件除外,该文件存在但是为0字节。
答案 0 :(得分:2)
我和你有完全相同的问题。最终为我工作的是将用android SDK打包的proguard版本升级到4.8。由于某种原因,proguard 4.7是问题的根源。
使用从proguard站点下载的文件替换\ android-sdk \ tools \ proguard \ lib \和\ android-sdk \ tools \ proguard \ bin \文件夹的内容。
我正在使用ADT 20.0.3
答案 1 :(得分:0)
好的,我自己解决了。不幸的是,该解决方案正在回归到ADT 18和ProGuard 4.7。奇怪的是,即使是ProGuard 4.8也给出了与ADT 18相同的错误。我很确定它是ADT中的一个错误。也许它与仍处于版本18的ADT Eclipse插件不兼容。奇怪的是,即使SDK下载仍然与ADT 18捆绑在一起,ADT 19仍可通过SDK管理器获得。
我的建议是在从Google升级任何内容之前备份所有内容,因为我们都是他们的beta版测试人员。
答案 2 :(得分:0)
Windows 7,Eclipse Juno,使用ADT 22.2.1。
最初的Proguard是4.6。 我不得不升级到4.10来解决这个问题。