2013-06-11 1 views
1

yGuard를 사용하여 일부 jar 파일을 난독 화하려고합니다.난독 처리하는 동안 NoSuchMapping 예외가 발생했습니다.

shrink 작업이 정상적으로 작동하는 것 같지만 처음에는 rename 이 예외를 throw합니다.

항아리 C 난독 : \ 작업 \ 단지는 \ yguard_temp_8318169257227053930.jar가 을 base_obf.jar에 오류를 [이름 바꾸기] ('에 대한 검색 매핑 : 클래스 java.util.Deque')는 다시 매핑하는 동안 발생하지 않습니다! 로그를보십시오!)

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

예, exclude의 적절한 정의가 문제를 해결했습니다. –

+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을 사용하여 일부 클래스를 포함 할 때 문제가 발생하는 것으로 보입니다. 반면 병중 내부에도 발생합니다 (또한 shrink 요소에 지정된 지점에서 액세스 할 수 있어야합니다).