gpt4 book ai didi

java - 启用 Guice 的应用程序的 Proguard 优化(无混淆)后的 ClassFormatError

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:56:31 25 4
gpt4 key购买 nike

我有一个启用了 Guice 的应用程序运行良好,但是当我使用 Proguard 优化它(即缩小大小)时,我收到以下错误消息(我用未捕获的异常处理程序捕获它):

java.lang.ClassFormatError: LVTT entry for 'that' in class file
com/google/inject/internal/util/$ImmutableList$RegularImmutableList
does not match any LVT entry

这会阻止应用程序正常运行。我不会混淆代码。

有人知道这是怎么回事吗?有解决方案/解决方法吗?

谢谢。

最佳答案

请确保您在撰写本文时使用的是最新版本的 ProGuard,版本 4.6。

根据其他报告,优化步骤中可能仍然存在错误 (#3161222),并不总是正确处理可选的 LocalVariableTable 和 LocalVariableTypeTable 属性。因此,三个简单的解决方法:

  • 在没有这些属性的情况下编译 (javac -g:lines,source),或者
  • 让混淆步骤删除属性(不要指定 -dontobfuscate,不要指定 -keepattributes LocalVariableTable、LocalVariableTypeTable),或者
  • 不优化 (-dontoptimize)。

这些属性用于调试,通常在混淆代码中不是很有用,甚至不需要。

关于java - 启用 Guice 的应用程序的 Proguard 优化(无混淆)后的 ClassFormatError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6067065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com