Proguard返回错误代码1.(文件名,目录名或卷标语法不正确)

时间:2012-06-03 23:57:23

标签: android proguard

我刚升级到最新的ADT(19),我再次收到来自ProGuard的投诉,但这次比平常更糟糕。我已经阅读了很多关于这个错误的问题,但这次答案都没有。

当我尝试导出已签名的APK时,控制台会说:

  

Proguard返回错误代码1.请参阅控制台

     

错误:@C:\ Users \ Barry \ AppData \ Local \ Temp \ android_8523956309172274256.pro(文件名,目录名或卷标语法不正确)

我确认该文件存在(I read elsewhere @是错误消息的一部分,而不是文件名的一部分)。我认为这个错误是抱怨文件路径,而不是文件内容,但以防万一我已经包含了下面的内容。

编辑:我在ProGuard文档中确认@应该在那里。它是命令行语法的一部分。

  • 我正在使用最新的Proguard(4.8)
  • 我正在使用最新的ADT Eclipse插件(18.0.0)
  • 我正在使用最新的Android SDK工具(19)和最新的Android SDK平台工具(11)
  • ProGuard未报告任何缺失的课程(或其他任何内容)
  • 我已经清理并重建了我的项目
  • 我正在使用Windows 7 64位

过去,我通过更改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字节。

3 个答案:

答案 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来解决这个问题。