마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

디버깅 할때와 그냥 실행할때 변수에 값이 다르게 들어갈수 있나요?

0 추천

ble와 통신하는 안드로이드 앱을 만들고 있습니다.

 

너무 뜬금없이 널포인터 익셉션이 터져서 디버깅을 차례차례 따라가 보았습니다.

 

그런데 디버깅할때는 값이 정상적으로 잘 들어가는데 그냥 실행하거나 널값이 들어가는 코드 다음줄에 브레이크 포인트를 걸고 디버깅을하면 널값이 들어가더군요.

 

코드한줄, 한글자도 바꾸지 않았고 단순히 브레이크 포인트만 바꿔서 디버깅을 한것입니다.

 

뭔가 기초적인걸 놓친듯한 느낌이 드는데 아무리 코드를 보더라도 원인을 모르겠네요.

아예 코드가 무시되는건가 싶어서 일부러 코드를 여러줄 반복도 시켜보고, 아예 메소드로 나눠서 셋팅을 하게 해보고 별에 별짓을 다 해보는중인데 전부 안먹힙니다.

로그를 보더라도 널포인트 익셉션을 제외한 특별한 오류에 대한 로그도 안보이고...

 

혹시 비슷한 경험을 해보신적이 있으시거나 해결해 보신적 있으신 분들 있으신가요?

여기서도 딱히 방법이 보이지 않으면 그냥 싸그리 날리고 다시 해볼 생각입니다. ㅠ

LuckyClover (180 포인트) 님이 2019년 5월 1일 질문
난독화 문제일 수도 있긴 하겠지만.  디버깅 걸어서 돌릴 때도 null이 나온다면,
Thread 타이밍 이슈일 가능성이 제일 높을 듯 합니다.
디버깅 앱으로 만들었을 땐, 운 좋게(?)  동작되었으나,
릴리즈나, 디버깅 걸어 테스트 시엔 별도 Thread에서  값을 나중에 설정하거나 초기화  해서 null이 나왔을 가능성이 있을 듯 하니. 세팅하는 쪽을 검토 해 보세요.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...