728x90 Android44 [안드로이드] Hilt 의존성 주입 - "error: [Dagger/MissingBinding] android.content.Context cannot be provided without an @Provides-annotated method." 에러 해결방법 Hilt를 사용하지 않았던 프로젝트에서 ViewModel과 Repository에 Hilt 의존성을 주입하던 중 오류가 발생했습니다. "error: [Dagger/MissingBinding] android.content.Context cannot be provided without an @Provides-annotated method." 오류 메시지의 의미대로 Context를 사용하는 곳에 어노테이션을 추가하지 않아서 발생하는 오류(?)라고 생각이 들어 얼른 구글링을 했습니다. DataStore에 접근하기 위해 Repository에 매개변수로 Context를 전달받고 있습니다. 이때, @ApplicationContext 키워드를 추가하지 않아 발생하던 오류였습니다!! 2023. 5. 14. [안드로이드] Android Studio targetSdk 33에서 xml 속성이 보이지 않는 경우 최근 안드로이드 13과 Sdk 33이 업데이트된 이후로 프로젝트를 생성하면 자동으로 targetSdk와 compileSdk가 33으로 설정되었다. "아 그런가보다~" 하고 이것저것 만져보던 중 이상한 점을 발견했다. 레이아웃을 설정하기 위해 xml에서 TextView 속성을 변경하려는데 text 키워드 일부가 보이지 않는다..? 속성을 코드로 직접 입력했더니 정상적으로 반영은 되고 있다. 하지만 android:textSize 키워드가 자동 완성으로 보이지도 않고, 검색도 되지 않으니 매번 속성을 직접 입력하기는 너무너무 불편한 일이다. 방법을 찾아야 한다...! 가장 먼저 targetSdk와 compileSdk를 32로 변경해 보았다. "Sync Now"에는 문제가 없어 빌드해보니 오류가 발생했다. Vi.. 2023. 5. 4. [안드로이드] RecyclerView에서 setHasFixedSize, 화면이 깜빡이는 현상 RecyclerView를 사용하다 보면 습관적으로 setHasFixedSize(true)속성을 사용하곤 한다. 정확한 의미는 모른 채 대략 "사이즈를 고정한다..?" 이런 목적으로 사용했던 것 같다. 이번에 setHasFixedSize의 의미에 대해 정확히 알아 두려 한다. setHasFixedSize RecyclerView는 Item의 size에 따라서 RecyclerView의 크기나 너비, 높이가 변경되는 View이다. 즉, Item이 추가, 삭제, 수정될 때마다 RecyclerView의 전체적인 크기가 변경된다는 것이다. 이때, 변경된 Item 목록을 RecyclerView에 반영하기 위해 레이아웃을 다시 그릴 필요가 있는데 RecyclerView를 다시 그리는 작업은 높은 비용을 요구하고, 성능 .. 2023. 5. 2. [안드로이드] Retrofit2 오류 : "URL query string "PATH={PATH}" must not have replace block. For dynamic query parameters use @Query." 문제상황 서버와 API 통신 중 다음과 같은 에러가 발생했습니다. "URL query string "PATH={PATH}" must not have replace block. For dynamic query parameters use @Query." // RetrofitService @GET("boards?tag={tagName}") suspend fun getAllPost( @Path("tagName") tagName: String ): Response RetrofitService 인터페이스에서 정의한 메소드입니다. 서버측에서 API 명세서에 요청 주소를 "boards?tag={tagName}"로 작성해주었기 때문에 안드로이드에서 별 생각없이 GET 메소드에 @Path 어노테이션만 지정해준다면 Retr.. 2023. 4. 17. [안드로이드] Material DropDown Menu(드롭다운 메뉴) 만들기 이전에 안드로이드에서 선택가능한 메뉴를 만들기 위해 Spinner를 사용하거나 Dialog를 통해 메뉴 항목을 구성했습니다. Menu Item을 커스텀하려면 style을 설정하고 수정해야 하는 부분이 많았는데 최근 굉장히 편리하게 DropDown 메뉴를 구성할 수 있는 방법을 알게되어 공유합니다. 실행화면 activity_main.xml 2023. 4. 13. [안드로이드] Fragment의 LifeCycle과 동작원리 안드로이드에서 Fragment는 4대 구성요소에는 포함되지 않지만 4대 구성요소만큼 중요하고 자주 쓰이는 컴포넌트입니다. 게다가 최근 구글에서는 최근 하나의 액티비티에 다수의 프래그먼트가 존재하는 SAA(Single Activity Architecture) 패턴을 권장하기 때문에 Fragment의 동작원리에 대해 공부할 필요를 느껴 이번 포스팅을 통해 정리해 보겠습니다. Fragment의 특징 프래그먼트는 자체적인 생명주기를 가지며 상태, 생명주기 전환은 FragmentManager에 의해 관리됩니다. 프래그먼트는 독립적으로 존재할 수 없고, 항상 액티비티 위에 존재하고 동작합니다. 하나의 프래그먼트는 다른 액티비티나 프래그먼트에서 재사용이 가능합니다. Fragment의 생명주기 프래그먼트는 액티비티 위.. 2023. 4. 11. 이전 1 2 3 4 5 6 ··· 8 다음 728x90 반응형