我刚刚升级到最新的 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 字节。