안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference

플래시🦥 2023. 3. 4.
반응형
val auto =Activity().getSharedPreferences("autoLogin", MODE_PRIVATE)

viewModel에서 이렇게 사용하니 Null을 참조했다면서 오류가 났다.

 

 

 

Activity와 fragment 에서는 아래처럼 사용해서 데이터가 비어있어도 잘 처리되었는데,

//Activity
val auto = getSharedPreferences("autoLogin", MODE_PRIVATE)
//Fragment
val auto = this.requireActivity().getSharedPreferences("autoLogin", Activity.MODE_PRIVATE)

 

 

Activity나 fragment 외의 class에서 사용하려니 오류가 나는 것 같았다,

그래서 activity 나 fragment에서 activity를 받아서 처리를 하도록 수정 했더니 오류가 해결되었다!

 

나는 fragment 에서 받아오는 거였어서 이렇게 해결했다.

 val auto =reviewFragment.requireActivity().getSharedPreferences("autoLogin", MODE_PRIVATE)

* reviewFragment는 내가 activity를 받아 저장한 변수 이름이다.

728x90
반응형

댓글