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>]
'ProgramingTip' 카테고리의 다른 글
JDBC와 MySQL을 사용하여 .sql 펼쳐보기 실행 (0) | 2020.11.14 |
---|---|
Erlang에서 trace 및 dbg 사용 (0) | 2020.11.14 |
IF EXISTS 하위 쿼리와 함께 SQL Select 문을 사용하는 방법은 무엇입니까? (0) | 2020.11.14 |
Java에서 ResultSet을 사용하여 행 수를 얻는 방법은 무엇입니까? (0) | 2020.11.14 |
서블릿에 대한 요청이 HTTP 또는 HTTPS를 사용하여 실행 어떻게 알 수 있습니까? (0) | 2020.11.14 |