에러: Cannot find implementation for com.example.flightsearch.data.AppDatabase. AppDatabase_Impl does not exist
개발/Android Studio 에러2024. 6. 3. 19:31에러: Cannot find implementation for com.example.flightsearch.data.AppDatabase. AppDatabase_Impl does not exist

해결법을 찾기는 바로 찾았다.한글 사용자들이 블로그에 작성한 글들도 여럿 존재한다. https://stackoverflow.com/questions/46665621/android-room-persistent-appdatabase-impl-does-not-exist Android room persistent: AppDatabase_Impl does not existMy app database class @Database(entities = {Detail.class}, version = Constant.DATABASE_VERSION) public abstract class AppDatabase extends RoomDatabase { private static AppDatabase INSTANCE; ...s..

마나커(Manacher) 알고리즘
개발/알고리즘2024. 6. 3. 14:07마나커(Manacher) 알고리즘

1. 마나커 알고리즘(Manacher's Algorithm)이란?어떤 문자열에서 팰린드롬의 개수와 위치를 찾는 알고리즘이다. 팰린드롬이란?팰린드롬(회문, Palindrome)은 전체 문자열을 뒤집었을 때 원래 상태와 같은 수열, 문자열 등을 의미한다.ex) "기러기", "eye", "level", "aba", "aa"  마나커 알고리즘은 문자열 길이의 P 배열에 i번째 문자를 중심으로 한느 가장 긴 팰린드롬의 반지름 크기를 저장한다.시간복잡도는 O(N)으로 접미사배열 + LCP 배열을 이용한 방법 O(NLogN)보다 빠르다. https://small-stepping.tistory.com/936 멘버 마이어스 알고리즘과 Kasai 알고리즘문자열을 다룰 때 빼놓을 수 없는 자료 구조인 접미사 배열(Suffi..

DataStore를 사용한 로컬에 환경설정 저장
개발/AOS2024. 5. 30. 14:59DataStore를 사용한 로컬에 환경설정 저장

관계형 데이터를 저장할 필요가 없는 경우 SQL, Room이 아닌 DataStore를 사용하는 것이 간단한 솔루션이 될 수 있다. DataStore Jetpack 구성요소는 오버헤드가 낮은 작고 간단한 데이터 세트를 저장하는 좋은 방법이다. DataStore에는 서로 다른 두 가지 구현(Preferences DataStore, Proto DataStore)이 있다.Perferences DataStore는 키-값 쌍으로 저장한다. 값은 String, Boolean, Integer와 같은 Kotlin의 기본 데이터 유형일 수 있다. 복잡합 데이터 세트는 저장하지 않으며, 사전 정의된 스키마도 필요 없다. 기본적으로 사용자 환경설정을 기기에 저장하는 식으로 쓰인다.Proto DataStore는 맞춤 데이터 유..

Room을 사용한 데이터 유지
개발/AOS2024. 5. 27. 18:05Room을 사용한 데이터 유지

Android Jetpack 'Compose 사용 시 알아야 하는 Android 기본 사항' 강의'단원 6: 데이터 지속성을 위해 Room 사용'의 4번 챕터 내용을 기반으로 학습 후 작성하는 글입니다.자세한 내용은 하단 링크를 참고하세요. https://developer.android.com/courses/pathways/android-basics-compose-unit-6-pathway-2?hl=ko 데이터 지속성을 위해 Room 사용  |  Android Basics Compose - Use Room for data persistence  |  Android DevelopersRoom 라이브러리를 사용하여 Android 앱에서 관계형 데이터베이스를 쉽게 만들고 사용할 수 있습니다.developer...

에러: kotlinx.serialization compiler plugin is not applied to the module, so this annotation would not be processed. Make sure that you've setup your buildscript correctly and re-import project.
개발/Android Studio 에러2024. 5. 24. 15:49에러: kotlinx.serialization compiler plugin is not applied to the module, so this annotation would not be processed. Make sure that you've setup your buildscript correctly and re-import project.

Retrofit을 통해 데이터를 받아오고, 네트워크 응답을 파싱하기 위해 kotlinx.serialization을 사용한 JSON 응답 파싱을 시도하다가 해당 오류가 발생하였다. https://plugins.gradle.org/plugin/org.jetbrains.kotlin.plugin.serialization Gradle - Plugin: org.jetbrains.kotlin.plugin.serializationVersion 2.0.0 (latest) 2.0.0 Created 21 May 2024. Kotlin compiler plugin for kotlinx.serialization library plugins { id("org.jetbrains.kotlin.plugin.serialization")..

에러: This version (1.5.14) of the Compose Compiler requires Kotlin version 1.9.24 but you appear to be using Kotlin version 2.0.0 which is not known to be compatible.
개발/Android Studio 에러2024. 5. 24. 15:49에러: This version (1.5.14) of the Compose Compiler requires Kotlin version 1.9.24 but you appear to be using Kotlin version 2.0.0 which is not known to be compatible.

This version (1.5.14) of the Compose Compiler requires Kotlin version 1.9.24 but you appear to be using Kotlin version 2.0.0 which is not known to be compatible.  Please consult the Compose-Kotlin compatibility map located at https://developer.android.com/jetpack/androidx/releases/compose-kotlin to choose a compatible version pair (or `suppressKotlinVersionCompatibilityCheck` but don't say I did..

로컬 테스트 설정
개발/AOS2024. 5. 23. 18:33로컬 테스트 설정

이전 글에서 이어지는 내용입니다.https://small-stepping.tistory.com/957 종속 항목 삽입이전글에서 이어지는 내용입니다.https://small-stepping.tistory.com/956 UI 레이어와 데이터 레이어 분리레이어를 분리하는 이유코드를 여러 레이어로 분리하면 앱의 확장성이 높아지며 앱이 더 견고해small-stepping.tistory.com   로컬 테스트 설정이전 글들에서 UI 레이어와 데이터 레이어 분리 및 종속 항목 삽입으로 ViewModel에서 REST API 서비스와의 직접적인 상호작용을 추상화하는 저장소 구현에 이르기 까지 MarsPhotos 앱을 리펙터링하였다. 이 과정을 통해 목적이 제한된 작은 코드 조각을 테스트할 수 있다. 기능이 제한된 작은 ..

에러: Didn't find class "androidx.test.runner.AndroidJUnitRunner" on
개발/Android Studio 에러2024. 5. 23. 18:32에러: Didn't find class "androidx.test.runner.AndroidJUnitRunner" on

다음과 같은 에러가 발생하였다. java.lang.RuntimeException: Unable to instantiate instrumentation ComponentInfo{xxx.yyy.test/android.support.test.runner.AndroidJUnitRunner}: java.lang.ClassNotFoundException: Didn't find class "android.support.test.runner.AndroidJUnitRunner" on path: DexPathList[[],nativeLibraryDirectories=[/system/lib, /vendor/lib]] at android.app.ActivityThread.handleBindApplication(A..

에러: Execution failed for task ':app:compileDebugAndroidTestKotlin'.
개발/Android Studio 에러2024. 5. 23. 18:27에러: Execution failed for task ':app:compileDebugAndroidTestKotlin'.

다음과 같은 에러가 발생하였다. org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDebugKotlin'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:142) at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfVali..

개발/Android Studio 에러2024. 5. 23. 17:44에러: Duplicate class error org.hamcrest.BaseDescription found in modules

Duplicate Class 에러는 동일한 클래스가 두 번 이상 정의되었을 때 발생한다. Duplicate class org.hamcrest.core.IsSame found in modules hamcrest-core-1.1 (org.hamcrest:hamcrest-core:1.1) and junit-4.10 (junit:junit:4.10)Duplicate class org.hamcrest.internal.ArrayIterator found in modules hamcrest-core-1.1 (org.hamcrest:hamcrest-core:1.1) and junit-4.10 (junit:junit:4.10)Duplicate class org.hamcrest.internal.SelfDescribingV..

image