1

我刚刚升级到最新的 ADT (19),我再次收到 ProGuard 的投诉,但这次比平时更糟。我已经阅读了数十个有关此错误的问题,但这次没有一个答案有效。

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

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

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

我确认该文件存在(我在其他地方读到@ 是错误消息的一部分,而不是文件名的一部分)。我认为这个错误是在抱怨文件路径,而不是文件内容,但以防万一我包含了下面的内容。

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

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

过去,我在升级 ADT 后修复了 ProGuard 错误,方法是按照该线程的建议更改 proguard.bat 中的“%@”参数。上面的错误对我来说是全新的。我在这个帖子中只发现了一份其他报告,但发帖人通过升级到 ProGuard 4.8 修复了它。我没有这样的运气。:(

预先感谢...

编辑:当我使用上述输入 jars 手动运行 ProGuard 时,它报告由于缺少 jars 而丢失了类(尽管我从未在控制台中看到过这个)。问题是我仍然不知道为什么 ProGuard 或 ADT 会生成缺少 jar 的 .pro 文件,因为它们位于我的构建路径上并与以前的 ADT 一起使用。

上述文件内容:

C:\Users\Barry\dev\workspace\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 \tools\support\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 字节。

4

3 回答 3

2

我和你有完全相同的问题。最终对我有用的是将与 android SDK 一起打包的 proguard 版本升级到 4.8。出于某种原因,proguard 4.7 是问题的根源。

将 \android-sdk\tools\proguard\lib\ 和 \android-sdk\tools\proguard\bin\ 文件夹的内容替换为从 proguard 站点下载的文件。

我正在使用 ADT 20.0.3

于 2012-10-07T06:14:32.577 回答
0

Windows 7,Eclipse Juno,使用 ADT 22.2.1。

最初的 Proguard 是 4.6。我不得不升级到 4.10 来解决这个问题。

于 2013-10-03T14:45:25.310 回答
0

好的,我自己解决了。不幸的是,解决方案回滚到 ADT 18 和 ProGuard 4.7。奇怪的是,即使 ProGuard 4.8 在 ADT 18 中也出现了同样的错误。我很确定这是 ADT 中的一个错误。也许它与仍处于版本 18 的 ADT Eclipse 插件不兼容。奇怪的是,即使 SDK 下载仍与 ADT 18 捆绑在一起,ADT 19 仍可通过 SDK 管理器获得。

我的建议是在从 Google 升级任何内容之前备份所有内容,因为我们都是他们的 beta 测试人员。

于 2012-06-04T08:04:35.003 回答