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

액티B finish할때 멈춤 오류

0 추천
메인화면인 액티 A와

게임을 동작할 액티 B가 있습니다

B는 여러 클래스들을 호출하며 동작하다가

종료 버튼시 액티B를 finish로 종료 시켰습니다

B가 죽고 정지 됐던 A가 다시 동작하는 상황을 원하는데

휴대폰에서는 B가 죽고 액티 A를 띄우고 정지해 있다가 튕깁니다

그런데 가상머신에서는 로그캣에 에러코드를 띄우지만 원하는대로 작동은 합니다

E/에러: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Canvas.drawBitmap(android.graphics.Bitmap, float, float, android.graphics.Paint)' on a null object reference

휴대폰과 가상머신 API레벨은 같습니다
sonic121 (120 포인트) 님이 2018년 11월 26일 질문

2개의 답변

0 추천

NullPointerException의 경우 에러가 발생한 곳에서 사용되는 변수들이 의도치 않게 NULL이 됬는지 먼저 확인 하는것이 좋습니다.

익명사용자 님이 2018년 11월 26일 답변
0 추천

종료 시 호출되는  함수의 타이밍 이슈로 보입니다.

가상 머신에서는 finish 이후 화면을 그리려고 하지 않아 문제 없었으나,

문제가 생긴 단말에서는 finish가 되면서  이미지 객체를 release하는 도중 

ui thread에서 이미지 객체를 그리려 시도하다 NullPointerException이 발생한 것으로 생각됩니다.

이미지 객체를 release 하는 부분을  super.onStop 이후로 옮겨보시는게 좋을 듯 합니다.

익명사용자 님이 2018년 11월 26일 답변
...