我试图使用YGuard混淆程序的某些部分,其中包含加密方法和其他敏感信息(一旦我搞清楚了,我将以其他方式进一步保护这些信息)。
由于该程序相当复杂,并且包含了相当多的库,它显然提供了一系列警告,最后失败了:
WARNING: Method initialize_ffi_type is native but com/sun/jna/Native is not kept/exposed.
WARNING: Method getAPIChecksum is native but com/sun/jna/Native is not kept/exposed.
[...]
yGuard was unable to resolve a class (java.lang.ClassNotFoundException: com.sun.tools.javac.parser.Parser$Factory)不管这意味着什么我想
到目前为止,在YGuard中,我似乎必须指定我不想被混淆的类,但是我有太多的类,相反,我想做相反的事情:指定我想混淆的内容,然后继续增加我想要混淆的类和包的数量。
谢谢
发布于 2014-01-17 10:16:02
通常情况下,混淆者会指定应该保留什么,而不是相反。
但是,可以使用externalclasses规则(链接)定义库类路径。在此路径中定义的类既不混淆也不收缩。获得的第二个错误(ClassNotFoundException)表明您没有指定项目所依赖的所有库。
为了现在混淆代码,您可以做的是:
patternset在您的keep规则(链接)中定义所有要保留的,但要混淆的类除外。https://stackoverflow.com/questions/16396807
复制相似问题