2013-06-11 155 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元素中指定的點訪問)。