Android 106

Room DB 마이그레이션

안드로이드 공식 페이지 - Room 데이터베이스 이전 기존 Room DB 구성 더보기 @Database( entities = [Alarm::class, MedicationHistory::class], version = 1 ) abstract class AppDatabase : RoomDatabase() { abstract fun alarmDao(): AlarmDao abstract fun medicationHistoryDoa(): MedicationHistoryDao companion object { @Volatile private var instance: AppDatabase? = null fun getDatabase(context: Context): AppDatabase = instance ?: sy..

Dev/Android 2022.07.14

Retrofit2 이슈 - com.google.gson.JsonIOException: JSON document was not fully consumed.

이슈 retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall@dffd7f3 com.google.gson.JsonIOException: JSON document was not fully consumed. 원인 REST API 의 Response 형태가 json 형태가 아닌 String 형태로 내려올 경우에 발생한다. 해결 ScalarsConverterFactory 추가 .addConverterFactory(ScalarsConverterFactory.create()) Retrofit.Builder() .baseUrl(IhpUrl.rest_api_url) .addConverterFactory(ScalarsConverterFactory.create()) .addCo..

Dev/Android 2022.04.25

Android 폰에 GMS 가 없다니?!

디바이스에 GMS 가 없을 경우에 Logcat 에 다음과 같이 찍혀나올 것이다. - Failed to find package android.content.pm.PackageManager$NameNotFoundException: com.google.android.gms - Google Play services missing or without correct permission. 처음에는 권한 이슈 클래스 문제인가 라고 생각했다. 그러나 자세히 보니 GMS 가 없다라는 것을 알게 되었다. 현재 중국에서 개발한 Androis OS 가 탑재된 하드웨어어는 깡통 Android OS 이다. 그래서 익히 알고 사용하고 있는 Google 서비스들이 없다. FCM 를 사용하해서 Push Message 를 받으려고 했다...

Dev/Android 2022.03.04

Android - E/AndroidRuntime: FATAL EXCEPTION: grpc-okhttp-0

안드로이드에서 라이브러리 최신으로 올리면서 발생한 이슈 여러개의 라이브러리 버전을 업하다보니 정확히 무엇때문에 발생했는지 찾기에는 시간이 걸려서 패스 일단은 원인은 아래와 같다고 나왔기 때문에 해당 부분에 대해서 조치를 했다 이슈 2022-02-11 11:24:07.381 6651-6740/com.healthyryu.test.debug E/AndroidRuntime: FATAL EXCEPTION: grpc-okhttp-0 Process: com.healthyryu.test.debug, PID: 6651 java.lang.AssertionError: Method getAlpnSelectedProtocol not supported for object SSL socket over Socket[address=f..

Dev/Error 2022.02.11

Android Gradle 빌드파일 - build.gradle.kts 참고

Android KTS 로 작성된 적용한 Gradle 빌드 파일 - build.gradle 파일 참고 https://github.com/google/iosched/blob/main/mobile/build.gradle.kts google/iosched The Google I/O Android App. Contribute to google/iosched development by creating an account on GitHub. github.com /* * Copyright 2021 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in complian..

Dev/Android 2021.07.13

AndroidX 로 바뀌면서 Activity, Fragment 에 유용한 작업 기능

참고 한 Medium 글 How AndroidX changes the way we work with Activities and Fragments Over the last couple of months, many improvements to the Activity/Fragment APIs have been introduced via the AndroidX packages. medium.com 1. Fragment 에서 OnBackPressed 관리 class MyFragment : Fragment() { override fun onAttach(context: Context) { super.onAttach(context) val callback = object : OnBackPressedCallback(tr..

Dev/Android 2021.06.29

XML 에서 뷰모델을 활용해서 텍스트 변경, ViewModel Pattern

작업 설명 ViewModel 을 활용해서 XML 상에서 TextView 의 text attribute 를 변경하는 작업을 해볼 예정입니다. 1. 시나리오 복약정보를 나타내는 Dialog에서 Switch버튼에 따라서 특정 텍스트 변경하도록 처리 2. 해결 방법 처음에는 xml 에서만 처리하는 방법을 찾았는데 찾지 못했습니다. 그래서 Switch버튼의 checked 여부를 viewModel 에 전달해서 해당 정보를 xml 에 전달하도록 했다. ViewModel val switchMedication = ObservableField() ... fun updateSwitchMedication(isMedication: Boolean) { switchMedication.set(isMedication) } xml ....

Dev/Android 2021.05.18