ProgramingTip

Android에서 난독 화 된 (ProGuard 사용) 애플리케이션으로 행동하는 방법은 무엇입니까?

bestdevel 2020. 11. 14. 10:54
반응형

Android에서 난독 화 된 (ProGuard 사용) 애플리케이션으로 행동하는 방법은 무엇입니까?


이런 걸 얻었을 때

ERROR/AndroidRuntime(18677): Caused by: java.lang.NullPointerException
ERROR/AndroidRuntime(18677):     at com.companyname.a.a.a(Unknown Source)

문제가 어디에 있는지 확인 하고이 문제를 해결해야합니까? ProGuard에서 매핑 출력 만는데 줄 번호가 있습니다. 감사합니다.


proguard 구성에 다음 줄을 추가합니다.

-renamesourcefileattribute SourceFile    
-keepattributes SourceFile,LineNumberTable

이제 스택 추적에 줄 번호가 포함되고 proguard (Android SDK에 포함)와 함께 제공되는 retrace 도구를 사용하여 평상시처럼 디버그 할 수 있습니다.

이 두 가지 구성 옵션을 사용하지 않는 것이 좋습니다.

참고 : 매핑이있는 파일은 proguard 구성 옵션에 의해 생성됩니다.

 -printmapping outputfile.txt

Android SDK와 함께 제공되는 ant 파일에서는 mapping.txt로 설정됩니다.

행운을 빕니다.


Android Market 계정의 스택 추적을 사용 -printmapping하여 ProGuard 구성 옵션으로 생성 된 맵 파일 을 ReTrace (ProGuard 동반 도구)와 사용하여 스택 추적을 함께 사용할 수 있습니다. 지도 파일의 내용을 사용하여 손으로 사용할 수도 있습니다.

예제 아래의 ProGuard 매뉴얼에는 줄 번호를 유지하는 방법을 포함하여 유용한 난독 화 된 스택 추적 생성에 대한 섹션이 있습니다.

불행히도 줄 번호를 유지하도록 ProGuard를 설정하지 않은 경우 예외를 발생시키는 메소드 만 할 수 있습니다.


stack_trace.txt에 스택 추적 끌기

다음 명령을 실행하십시오. java -jar retrace.jar classes-processed.map stack_trace.txt

retrace.jar은 sdk \ tools \ proguard \ lib \ retrace.jar에 있습니다. classes-processed.map은 난독 화를 수행했을 때 proguard에서 생성 한 출력 파일입니다.


다음은 Android SDK의 retrace 도구에 대한 공식 문서 링크입니다. https://developer.android.com/studio/build/shrink-code#decode-stack-trace

이 기사도 좋습니다 : https://medium.com/@maheshwar.ligade/de-obfuscate-stack-traces-6e19a52a3379

복사-붙여 넣기 형제 모두 :

retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]

참고 URL : https://stackoverflow.com/questions/3913338/how-to-debug-with-obfuscated-with-proguard-applications-on-android

반응형