Archive

Archive for August, 2014

วิธี trace crash log เมื่อใช้ Proguard

August 7, 2014 Leave a comment

วิธี Trace crash log จาก Google Play เมื่อใช้ Proguard

ปกติแล้วเมื่อเราใช้ Proguard ใน Project จะพบว่า Crash log ใน Google Play จะ Report code ที่ถูก obfuscate มาแล้ว ตัวอย่างเช่น

java.lang.IndexOutOfBoundsException: Index: 3, Length: 3
at a.a.a.a.a.a(Unknown Source)
at com.example.www.cp.a(Unknown Source)
at com.b.a.a.f.a(Unknown Source)
at com.b.a.a.g.handleMessage(Unknown Source)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5493)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
at dalvik.system.NativeStart.main(Native Method)

ทีนี้เรามาหาวิธีแปลงกลับ โดยการโหลด Proguard มาก่อน
ที่: http://sourceforge.net/projects/proguard/files/

หลังจากนั้นสร้างไฟล์มาไฟล์นึง ชื่อ obfuscated_trace.txt แล้วใส่ Error ที่ได้จาก Google Play Console ลงไป แล้วใช้คำสั่งด้านล่างใน CMD ตัวอย่างเช่น
C:\proguard4.10\bin>retrace.bat -verbose C:\workspace\{Project}\proguard\mapping.txt C:\log\obfuscated_trace.txt

สิ่งที่ใช้คือ
-retrace.bat
-mapping.txt ของ Project ที่ใช้ Proguard
-obfuscated_trace.txt ไฟล์ Error ที่ถูก Proguard ปั่นโค๊ด

Categories: Android Tags: , ,