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

static method가 null pointer exception이 나네요.

0 추천
public class XXXX를 선언하고

이 안에는 앱 내에서 공통적으로 쓰는 기능들을 모아두었습니다.

메소드는 전부다 public static ~~이구요.

평상시에는 문제가 없는데

앱을 켜 놓은 후 오랜시간이 지나면(12시간 까지도)

해당 기능을 사용하는 곳에서 널포인터가 날때가 종종 있습니다.

gc가 되어버려서 참조 오류가 나는것 같기도 한데..

구체적인 원인은 잘 모르겠네요.

이유가 무엇일까요?
모나미153 (17,540 포인트) 님이 2016년 3월 22일 질문

2개의 답변

0 추천
 
채택된 답변
따로 복구 작업을 해놓지 않으면 메모리킬러앱이나 오랜시간 방치후에 메모리에서 날아갑니다.

이것을 방지하려면 상태를 저장하고 복구하는 부분이 들어가야 합니다.

 

http://developer.android.com/intl/ko/training/basics/activity-lifecycle/recreating.html

위 안드로이드 개발자 사이트 한번 보시고 적용해보세요

키워드는 savedinstancestate 입니다.

 

그리고 공통으로 쓰는 변수가 바뀌지 않는 상수인 경우에는 static final로 선언 하시는게 좋습니다.
캬옹이 (37,920 포인트) 님이 2016년 3월 22일 답변
모나미153님이 2016년 3월 22일 채택됨
0 추천
해당 클래스의 static 메소드 내에서 static 변수 (객체 레퍼런스)를 사용하는 곳이 있다면 그런 오류가 발생할 수 있습니다.

static 변수를 사용하는 모든 곳에 null 검사를 추가하세요.

 

static 상수만 사용하면 이런 현상이 발생하지 않습니다.
익명사용자 님이 2016년 3월 22일 답변
아.. 그럼 final로 선언하면 문제가 없겠죠?
...