2024. 1. 21. 20:01ㆍSoft_Ware/Android
안드로이드 스튜디오 개발자 페이지를 기반으로 작성됨.
https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-1?hl=ko
Kotlin 프로그래밍 소개 | Android Basics Compose - First Android app | Android Developers
Kotlin에서 Android 앱 빌드를 준비하기 위해 Kotlin의 입문 프로그래밍 개념을 알아봅니다.
developer.android.com
이번 블로그에서는 안드로이드 개발자 페이지를 기준으로 필자가 학습하는 도중 겪었던 에러에 대한 소개와 함께 이해해야 하는 개념들을 소개하고자 한다.
주제는 Retrofit과 json serialization을 활용한 Android Rest Api 연습이다.
Retrofit, json Serialization 등 자세한 내용은 추후 블로그에서 작성할 예정이고 이 블로그에서는 문제가 무엇이며 해결방법이라고 하기엔 너무 간단하지만 문제를 해결했던 방안에 대해서 소개하고자 한다.
본론
100% 필자의 실수이긴 하다만, 필자가 앱을 구성하고 빌드를 시켰을 때 앱이 바로 다운되는 문제가 있었다.
그래서 Logcat을 통해 무슨 문제인가 확인을 해봤더니,
위와 같은 문제가 있었다. Retrofit을 통해 가져온 데이터를 Android에서 사용할 수 있도록 Json Serialization을 해줘야하는데, 그게 불가능하다는 것이었고 자세히 뜯어보니까 method Error가 발생한 상태였다.
Json Serialization을 하기위한 Convert code와 Retrofit build 코드를 모두 확인해봤는데 문제도 없었고 해당 기능을 사용하기 위한 gradle 파일의 dependency도 정상적으로 추가된 상태였다.
뭐가 빠진지 계속 틀린그림 찾기를 하다가 발견한 것이 gradle 파일 plugin 부분에 serialization 관련 플러그인을 추가해주지 않아서 발생하는 문제였던 것이다.
plugin은 특정 task를 처리하기 위해서 jetbrain이나 Google 등에서 만들어놓은 모듈 개념이라고 생각할 수 있다.
여기서 dependency로 추가해주었는데 왜 또 plugin까지 추가로 해줘야하냐 라고 궁금했었는데, 조금 더 알아보니 kotlin-serialization의 경우 컴파일러 레벨의 plugin이라서 추가를 안해줬을 경우 필자가 경험한 것과 같이 serialization method를 호출할 때 컴파일러가 method를 인지하지 못하는 오류가 발생하는 것이다.
따라서 아래와 같이 build.gradle.kts 파일에 아래와 같은 plugin을 추가해주면 되겠다.
사실 안드로이드 스튜디오에서 처음 프로젝트를 만들었을 때, 모르는 개념들 (gradle 등)을 모르고 넘어갔는데 이러한 오류들을 통해 조금씩 배우는 것 같다. 나머지 또 모르는 개념들은 다른 블로그에서 추후 소개하도록 한다.
'Soft_Ware > Android' 카테고리의 다른 글
Android Programming - Composition (1) | 2023.12.26 |
---|---|
Android Programming 기초 - Button (0) | 2023.12.19 |
Android Programming 기초 (2) (1) | 2023.12.06 |
Android Programming 기초 (1) - Text, Surface, Modifier (0) | 2023.12.04 |