我试图用yGuard混淆一些jar文件。
shrink
任务似乎工作得很好,但是第一个rename
抛出异常。
混淆Jar C:workjarsyguard_temp_8318169257227053930.jar到base_obf.jar在重新映射过程中出现错误('找不到映射:Class java.util.Deque') !查看日志!)
构建失败了C:rms setup_flashhabsicherungstool_3.4.x_alpha2 build.xml:32: yGuard遇到IO问题!
日志也没有帮助:
<!-- An exception has occured.
com.yworks.yguard.obf.NoSuchMappingException: No mapping found for: Class java.util.Deque
com.yworks.yguard.obf.NoSuchMappingException: No mapping found for: Class java.util.Deque
at com.yworks.yguard.obf.ClassTree.mapMethod(Unknown Source)
at com.yworks.yguard.obf.classfile.ClassFile.remap(Unknown Source)
at com.yworks.yguard.obf.GuardDB.remapTo(Unknown Source)
at com.yworks.yguard.ObfuscatorTask.execute(Unknown Source)
at com.yworks.yguard.YGuardTask.execute(Unknown Source)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.Main.runBuild(Main.java:851)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
-->
非常感谢任何帮助。我想不出原因
似乎问题出现时,你包括一些类使用externalclasses
嵌套元素,而它也恰好是在jar内(很可能,它也必须从shrink
元素指定的点访问)。