반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자료 구조
- 코틀린
- 코드트리조별과제
- 풀이
- 그래프 탐색
- BFS
- 안드로이드
- 파이어스토어
- 백준
- dfs
- map
- 분할정복
- 백트래킹
- 코딩테스트
- 그래프
- 그래프 이론
- 코드트리 조별과제
- 다익스트라
- 맵
- 문자열
- c++풀이
- 브루트포스
- dp
- 다이나믹 프로그래밍
- 코드트리
- c++
- 멀티맵
- 시뮬레이션
- 에러
- 파이어베이스
Archives
- Today
- Total
Kangho_Story
[안드로이드 코틀린 Kotlin] java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference 에러 해결 본문
Android
[안드로이드 코틀린 Kotlin] java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference 에러 해결
캉호 2024. 5. 16. 02:15728x90
반응형
private var MY_SECRET_KEY = R.string.MY_API
<resources>
<string name="API_KEY">MY_API_KEY</string>
</resources>
keys.xml에 위와 같은 방식으로 API Key를 저장한 후 MY_SECRET_KEY에서 불러와서 사용함으로써 API 노출을 방지하려고 했다.
그런데 java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference이라는 에러를 만났다.
R.string.MY_API로 값을 불러오는 것은 해당 string에 부여된 id를 불러오는 것이므로 int 값을 가진다는 것을 알게 되었다.
private var MY_SECRET_KEY = resources.getString(R.string.MY_API)
그래서 위의 코드로 수정했더니 API 값은 string 타입으로 잘 가져오는 것을 확인했지만 여전히 동일한 오류가 발생했다.
혹시 타입을 지정해주지 않아서 발생한 문제인가 생각해서 아래 코드로 변경했지만 동일한 오류가 발생했다.
private var MY_SECRET_KEY : String = resources.getString(R.string.MY_API)
문제점은 사실 타입이 아니었다.
MY_SECRET_KEY가 onCreate이전에 선언됨과 동시에 초기화가 되는 것이 문제였다.
그래서 MY_SECRET_KEY는 선언만 해놓고 onCreate 내부에서 key 값을 넣어 주는 코드로 변경했다.
private lateinit var MY_SECRET_KEY : String
onCreate{//간략하게 예시로 만든 코드
MY_SECRET_KEY = resources.getString(R.string.OpenAI_API)
}
그 결과 성공적으로 에러를 해결했다.
항상 onCreate 이전에는 선언만 하고 값은 그 이후에 넣도록 하자!
끝!
728x90
반응형
'Android' 카테고리의 다른 글
Comments