관계, Networking 그리고 Programming

프로가드로 빌드한 앱 에러시 에러 위치 확인

androbook 본캐 2014. 1. 17. 14:38

사용자가 많아지면서 몇 건의 버그가 발생하였음. 지금까지는 함수 위치만 봐도 딱 알만한 재현경로였기 때문에 별 문제가 없었으나, 이번 건에서는 함수 내의 어떤 곳에서 NullPointerException이 발생하였는지 모르는 사태가 발생함. 아마도 다른 activity를 띄운 사이 아래쪽 activity가 내려가버려 문제가 발생한 듯... 하지만 재현경로는 없는 상황. 아이코? 에러가 발생한 소스 줄 번호가 안나오네? 뭐 일단 해당 함수에서 사용하는 변수들에 모두 예외처리를 하긴하였으나, 이번 함수는 짧았기에 망정이지.


버그 스택

Caused by: java.lang.NullPointerException

at com.softseed.free.minttwallet.MainActivity.f(Unknown Source)

at com.softseed.free.minttwallet.MainActivity.onActivityResult(Unknown Source)

at android.app.Activity.dispatchActivityResult(Activity.java:5563)

at android.app.ActivityThread.deliverResults(ActivityThread.java:3496)

... 13 more


자, 이런 사태를 방지하기 위해 다시 프로가드 관련 내용을 검색, 아, 찾았다. 에러 스택에 소스 이름과 줄번호를 유지하기 위해서는 프로가드 구성에 다음의 옵션이 추가 되어야 함.


-keepattributes SourceFile,LineNumberTable


의도적인 버그를 만들어 테스트를 한 결과, 버그가 발생한 소스 이름과 라인이 잘 표현되는 것을 확인함.


Caused by: java.lang.NullPointerException

at com.softseed.free.minttwallet.MainActivity.f(MainActivity.java:938)

at com.softseed.free.minttwallet.MainActivity.onActivityResult(MainActivity.java:636)

at android.app.Activity.dispatchActivityResult(Activity.java:5192)

at android.app.ActivityThread.deliverResults(ActivityThread.java:3149)

... 11 more


버그가 안나온다면 더 좋겠지만, 버그가 나올 때 빨리 대처해 주는 것도 중요. 꺗. 쭉쭉 나아가랏 Mint T Wallet!!! 화이팅!







버그를 잡으랏!!