我现在正在尝试使用 proguard,因为它更容易在 eclipse 中使用。我已经导出了我的应用程序的签名版本,其中包含一个导致测试崩溃的故意错误。在我获得堆栈跟踪并运行 retrace -verbose mapping.txt stack.txt 之后,它没有给我错误发生的位置,而是给了我发生错误的类并列出了一个方法,其中一个是发生异常的方法发生。
我对所有这些都使用了官方指南,并将 logcat 堆栈跟踪捕获编辑为与开发控制台相同的格式。任何人都知道问题可能是什么?
我现在正在尝试使用 proguard,因为它更容易在 eclipse 中使用。我已经导出了我的应用程序的签名版本,其中包含一个导致测试崩溃的故意错误。在我获得堆栈跟踪并运行 retrace -verbose mapping.txt stack.txt 之后,它没有给我错误发生的位置,而是给了我发生错误的类并列出了一个方法,其中一个是发生异常的方法发生。
我对所有这些都使用了官方指南,并将 logcat 堆栈跟踪捕获编辑为与开发控制台相同的格式。任何人都知道问题可能是什么?
如果您的混淆代码不包含行号信息,则由于名称重载,将无法明确地将混淆的方法名称(如“a”)映射到原始方法名称。ReTrace 手册中的示例说明了差异。
为了避免这种影响,您可以在混淆步骤中保留行号信息,如ProGuard 手册中的示例所示。