일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Refresh Tocken
- SOLID 원칙
- refresh 토큰
- 배움순서
- 토큰갱신
- TDD 개발 방법론
- dart test
- 객체 지향 설계
- Flutter
- 플러터 테스트
- 2D graphics library
- retorift
- 2D 그래픽 라이브러리
- Parameter specified as non-null is null
- 에러 메시지를 잘보자 ^^
- widget test
- Same parameter
- pubspec.yaml
- Android
- 인코딩방지
- permission_handler
- 다트 테스트
- 안드로이드를 위한
- 다트
- 테스트 주도 개발론
- 플러터
- dart
- 8시간 삽질
- 안드로이드
- pubspec
Archives
- Today
- Total
Landroid
Parameter specified as non-null is null 해결 본문
사건전말
오늘도 평화롭게 코딩을 하고 있는 나에게 갑자기 뜬금없는 곳에서 에러가 발생했습니다.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: 패키지명, PID: 7992
java.lang.RuntimeException: Unable to start activity ComponentInfo{패키지명.Detail.View.DetailPostActivity}: java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter asset
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter
갑자기 널포인트 예외? 테스트까지 거치면서 완벽하게 동작할 줄 알았던 코드에서 예외를 내뱉다니 헛웃음이 나네요.
그래서 어제 이것에 대해 삽질한 결과 아주 단순한 문제였습니다.
이게 생각보다 흔히 발생할 수 있는 오류일 것 같아서 블로그를 통해 작성하게 되었습니다.ㅎㅎ
일단 에러가 발생한 원인은 서버가 String이 아닌 NULL을 줘서 에러가 났던 것입니다.
저는 위와 같은 상황에서 발생했습니다.
1. asset에 String이 아닌 NULL이 들어감
2. 프래그먼트에서는 Parealable 클래스를 인텐트에 담고 다른 액티비티로 보냄
3. 액티비티에서 인텐트로부터 데이터를 받아옴
4. 받아온 데이터에서 문자열이 아닌 null이 담긴 asset 때문에 에러발생
5. asset 타입을 String에서 String?으로 변경
6. 해결
에러메시지를 잘 보면 마지막에 parameter asset이라고 적혀있습니다. 거기가 에러를 발생시킨 원인이기 때문에
사실 에러메시지를 잘 읽으면 해결될 수 있는 문제입니다. ^^
덕분에 8시간을 날리는 경험을 겪고 정신이 번쩍들게 만들었네요
'안드로이드' 카테고리의 다른 글
[Android] Interceptor로 토큰 갱신하기 (0) | 2021.04.14 |
---|---|
Postman에서 같은 이름의 파라미터를 Retrofit에서 구현하는 방법 (0) | 2020.11.13 |
SearchView, 속성 사용법 (2) | 2020.10.31 |
TextView 안에 #붙은 단어에만 스팬 적용하기 (0) | 2020.10.17 |
Retrofit 응답 상태 관리 (0) | 2020.10.10 |
Comments