Proguard 无符号短值溢出

Proguard Overflow of unsigned short value

将包含我需要的一些功能的 jar 文件添加到我的应用程序后,我的混淆器构建一直无法正常工作。我在 运行 我的 proguard 构建后得到的错误消息是:

Warning: Exception while processing task java.io.IOException: java.lang.RuntimeException: Unexpected error while writing class [proguard/optimize/gson/_OptimizedTypeAdapterFactory] (Overflow of unsigned short value [93362])
Thread(Tasks limiter_1): destruction

有什么方法可以让 ProGuard 不检查该 jar 文件吗?我正在使用 ProGuard v6.2.2。我怀疑问题出在 GSON 上,因为在此错误之前我遇到过问题。

我也在这里检查和研究了答案,例如 Proguard [java.lang.IllegalArgumentException:无符号短值溢出]

#732 Exception while handling very long string argument

如有任何帮助,我们将不胜感激。

这是一个已知错误。在此问题得到纠正之前,您只能禁用代码优化:

-optimizations !code/simplification/string

或使用 -dontoptimize 完全禁用优化。或者只使用 R8 代替 ...

那个建议版本降级的链接答案也可能有效。

您可以在此处阅读有关 ProGuard 配置和优化的更多信息:

https://www.guardsquare.com/en/products/proguard/manual/usage/optimizations

但在您的情况下,您可以像这样排除抛出异常的 gson 库:

-optimizations !library/gson