목록Android (29)
nueijeel

Request threw uncaught throwable co m.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders registered for model class: class com.google.android.gms.tasks.zzw at com.bumptech.glide.load.model.ModelLoaderRegistry.getModelLoaders(ModelLoaderRegistry.java:77) at com.bumptech.glide.Registry.getModelLoaders(Registry.java:588) at com.bumptech.glide.load.engine.Decode..

프로젝트 작업 중 기능 구현을 하고 프로그램을 실행시켰더니 갑자기 오류가 발생했다 app:compileDebugKotlin org.jetbrains.kotlin.gradle.tasks.CompilationErrorException : Compilation error 와 같은 에러가 났다고 표시됐고 빌드 오류라 로그캣도 이용할 수 없었다. 오류 났다고 표시된 MainActivity.kt의 15번째 줄도 import 문이었기 때문에 발생 이유를 찾기가 힘들었다. 구글링 해도 별 다른 해결책을 찾지 못하던 때 https://stackoverflow.com/questions/62131564/a-failure-occurred-while-executing-org-jetbrains-kotlin-gradle-inter..

Google Map API를 사용해 안드로이드 LBS 앱을 구현하는 도중 오류가 발생했다. 로그창 에러 메시지 프로그램이 종료되지도 않고 콘솔 오류도 안 떠서 로그 메시지를 출력했더니 서버로부터 전달받은 데이터에 오류 메시지가 있었다. error message : This IP, site or mobile application is not authorized to use this API key. Request received from IP address 175.205.196.94, with empty referer. 서버에 요청한 주소에는 별 문제가 없었기 때문에 이 오류 메시지를 구글링해 원인을 알아냈다. api 키 값이 주소에 포함되어 있었는데, 이 키에 제한 설정을 해놓았기 때문에 위와 같은 권한 ..

안드로이드 애플리케이션은 컴포턴트로 구성되고 컴포넌트는 Activity, Service, Content Provider, Broadcast Receiver의 4가지 요소로 구분된다. 그 중 Activity는 화면 UI 구성하는 컴포넌트에 해당한다. Activity는 눈에 보이는 독립적인 실행 단위로 생명주기가 있어 생성되고 소멸되기까지의 과정 속에서 상태가 계속 변한다. Activity 클래스는 액티비티의 상태 변화를 알아차릴 수 있는 onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()의 6가지 콜백 함수를 제공한다. 이 콜백 함수들을 구현함으로서 사용자가 앱 이용 중 발생할 수 있는 예외적인 상황(앱 사용 도중 전화가 와서 실행 중이..

안드로이드에서는 xml 문서와 json 문서의 데이터를 파싱해 가져올 수 있다. 1. XML 데이터 가져오기 xml은 마크업 언어이고 문서 내용이 태그로 구성되어 있다. xml 문서를 파싱하는데는 DOM, SAX, XmlPullParser의 3가지 방법이 있다. DOM 방식은 우선 문서를 처음부터 끝까지 읽어온 후 데이터를 트리구조로 만든 다음 필요한 처리를 하기 때문에, 모든 데이터가 메모리에 존재하고 있어 사용이 용이하고 속도도 빠르다. 여기서는 간단하게 DOM 방식을 이용한 예제를 소개하려고 한다. 1) AndroidManifest.xml에 인터넷 사용 권한 추가 해당 안드로이드 앱에서 인터넷 접속을 할 수 있도록 권한을 추가해준다. 2) 접속할 주소로 변수 선언 val serverAddress =..

Activity는 눈에 보이는 화면을 가진 독립적인 실행 단위이다. Activity를 실행시키면 출력되는 화면은 xml이라는 파일로 구성되어 있고 이 레이아웃 파일에 배치된 뷰들을 동작하게 하려면 코드로 처리를 해야한다. 이때 코드에서 뷰에 접근하기 위해 뷰를 객체화 하는 과정이 필요한데 이것이 이전 포스팅에서 다룬 '뷰 바인딩(View Binding)'이다. [Android] View Binding과 예제 2023.06.07 1. View View : 모든 뷰 클래스의 최상위 클래스로 화면에 보이는 모든 것을 View라고 칭한다. 안드로이드 공식 문서에 따르면 View 클래스는 UI 구성 요소를 만드는 데 기본이 되는 Widget과, 다 nueijeel.tistory.com 코틀린에서는 앱 수준의 빌드..

RecyclerView : 화면에 목록을 동적으로 표출하는 컨테이너 RecyclerView는 화면에 목록을 보여주는 뷰지만, Adapter와 ViewHolder가 없이는 목록을 표출 할 수 없다. ViewHolder는 하나의 목록을 구성하는 뷰들의 객체를 보관하는 역할을 하고, Adapter는 뷰 홀더에 있는 뷰 객체에 표출할 데이터를 연결하는 역할을 한다. 목록이 표출되는 화면에서 스크롤을 하면 상단에 위치해있던 목록들은 하단에 항목들이 새로 나타남과 동시에 보이지 않게 된다. 이때 새로 표출되는 항목의 뷰를 일일이 생성하지 않고, 기존에 상단 목록을 표출할 때 사용했던 뷰 객체를 재사용하여 데이터만 새로 담아 사용할 수 있게 해주는 것이 ViewHolder이다. ViewHolder를 사용하면 뷰 객체..