2013-06-11 141 views
1

我想用yGuard混淆一些jar文件。尝试混淆时出现NoSuchMapping异常

shrink任务似乎正常工作,但第一个rename 引发异常。

模糊处理罐C:\工作\罐\ yguard_temp_8318169257227053930.jar到base_obf.jar [重命名]错误( '没有找到映射:类java.util.Deque中')重映射过程中发生!查看日志!)

BUILD FAILED C:\ rms \ Setup_FlashAbsicherungsTool_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) 
--> 

任何帮助高度赞赏。无法弄清楚原因。

+0

您是否发现任何解决方案或解决方法? –

+1

是的,排除的正确定义解决了问题 –

+0

如果你的类使用了反射,那么它应该从混淆中排除。 请参阅此处:[https://www.yworks.com/resources/yguard/yguard_ant_howto.html#hints](https://www.yworks.com/resources/yguard/yguard_ant_howto.html#hints) – GLampros

回答

0

似乎问题出现时,当您使用externalclasses嵌套元素包含某些类时,它也恰好位于jar内(并且很可能它也必须可以从shrink元素中指定的点访问)。

相关问题