목록안드로이드(Android) (70)
Simple&Natural
진행하는 프로젝트의 Gradle을 리팩토링 하던 중 빌드가 되지 않는 현상이 발생하였다. 안드로이드 스튜디오 버전 4.0 오류 내용 Execution failed for task ':app:mergeDebugJavaResource'. > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > More than one file was found with OS independent path 'META-INF/AL2.0'. 해결방법 구글링 도중 발견한 문제 해결의 키워드이다. 여러 모듈 앱 환경에서 작동하는 비슷한 문제에 직면했습니다. 오류 : ': app : transformResource..
- Retrofit에서 코루틴 사용을 위해서는 2.6.0버전 이상을 사용해야 한다. - Room과 Retrofit은 자체적으로 비동기 처리를 하기 때문에 Main Dispatcher에서 suspend function을 사용하더라도 main-safe하다. IO Dispatcher를 사용하는 것은 아니고 자체 Dispatcher를 사용함. Suspend function support requires Retrofit 2.6.0 or higher. Both Room and Retrofit make suspending functions main-safe. It's safe to call these suspend funs from Dispatchers.Main, even though they fetch from t..
과거에 채팅앱을 만들어보며 백그라운드 작업에 대해 상당히 많은 고민을 했었는데 안드로이드에서 처리할 수 있는 백그라운드 작업방법에 대해 잘 정리해 놓은 글을 발견해서 읽어보았다. 결론은 Jetpack에 새로 도입된 WorkManager를 소개하는 글이다. 채팅앱을 만들 당시 필요했던 작업은 24시간 소켓을 유지하여 각종 메시지 등을 처리하는 부분이었는데 사실 이 작업을 위해서는 백그라운드 서비스를 죽지않게 계속 돌려야 하는 문제점이 있었다. 하지만 이는 안드로이드 자체에서 별로 권장하지 않는 방법이었고 그렇다고 foreground service에 소켓을 유지시킬 수도 없는 노릇이었기에 이 방법은 포기했던 기억이 난다. 결국 소켓은 앱이 foreground 상태일 때만 유지시키고 background로 진입..
코틀린의 main 함수에서 파일이 생성되고 저장되는 기본 경로는 프로젝트 폴더 UnitTest를 해보면 경로는 프로젝트폴더/app 으로 지정된다. 아래의 코드를 이용해 파일을 읽고 써보면 쉽게 알 수 있다. //파일 쓰기 val file = File("test.txt") lateinit var fw:FileWriter val text = "This is TEST string." try { fw = FileWriter(file) fw.use { it.write(text) } } catch (e: Exception) { e.printStackTrace() } //파일 읽기 val file = File("test.txt") lateinit var fr: FileReader lateinit var jsonStr..