Android 103

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

안드로이드 빌드 타입별로 나누는 방법 - BuildTypes

부끄럽게도 지금까지 빌드 타입별로 앱을 생성하는 작업을 자의로 혹은 의식해서 작업은 하지 않았던것 같습니다. 최근에 시간에 여유가 있어서 이것저것 알아보면서 공부하다보니 빌드 타입별로 나눌 수 있다는것을 인지했습니다 ^^;;; 참고로 안드로이드는 공식적으로 BuildTypes 은 debug, release 두가지가 있습니다. 그리고 추가적으로 빌드 타입을 만들 수 있습니다. 그리고 추가적으로 create() 라는 함수를 통해서 Stage, Alpha, Beta 등의 타입을 생성할 수 있습니다. buildTypes { getByName("debug") { applicationIdSuffix = ".debug" // 아래는 제가 필요에 의해서 만든 추가 작업입니다. debuggable(true) isMini..

Dev/Android 2021.01.29