0

我试图让 Dexguard 在缩小和混淆我的代码时不剥离日志记录功能。因此,我在 Dexguard 配置文件中注释了以下指令:

-assumenosideeffects 类 android.util.Log {...}

注释此指令后,构建将失败并显示以下错误消息:

任务 ':app:dexguardRelease' 执行失败。 > 指令具有无效的常量索引大小 ([699742] ldc_w #65536)

我首先认为该问题与 Android 64K 限制有关,但是当禁用 dexguard 或启用它并设置为去除日志记录功能时构建成功。

dexguard 是否有可能在混淆像Log.d()这样可以包含长字符串作为输入参数的函数时遇到麻烦?

谢谢

4

1 回答 1

1

你可能在这个类中有很多调试字符串和一个-encryptstrings **指令。

这将导致单个类中的大量加密字符串导致错误,如您的帖子中所述。

我建议你重新审视你的-encryptstrings规则,只加密那些真正敏感的规则。

于 2016-11-21T13:26:32.770 回答