Android

원인 logcat 의 로그를 보던 중 아래와 같은 메시지가 노출되는 문제를 발견하였습니다. logcat: Unexpected EOF! This means that either the device shut down, logd crashed, or this instance of logcat was unable to read log messages as quickly as they were being produced. If you have enabled significant logging, look into using the -G option to increase log buffer sizes. 이 문제는 ADB의 log buffer 가 작아서 생기는 문제더라구요? 테스트 기기 혹은 애뮬레티어의 개발자옵션으로..
에러 android target sdk 를 29로 올렸더니 멀쩡하던 Glide에서 에러 로그를 뿜기 시작함.. 스택 W/ExifInterface: Invalid image: ExifInterface got an unsupported image format file(ExifInterface supports JPEG and some RAW image formats only) or a corrupted JPEG file to ExifInterface. java.io.IOException: Invalid byte order: ffff8950 at android.media.ExifInterface.readByteOrder(ExifInterface.java:3164) at android.media.ExifInter..
필요성 Android Studio 로 Android 개발을 하다 보면 adb shell 을 활용하여 테스트해야 하는 경우가 많습니다. 하지만 이와 관련된 환경 변수가 설정되어 있지 않다면 아래와 같은 메시지가 뜨게 되죠. $ adb bash: adb: command not found 환경 변수?? 환경 변수란 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임이라 합니다. 쉽게 말해 환경 변수에 실행할 파일의 경로를 미리 지정해두면 어떤 경로에서도 바로 실행 할 수 있도록 해주는 것이죠. 환경변수 영구 설정 구글링을 하면 bash_profile 을 설정해서 환경 변수를 설정하는 방법이 많은데 이 방법은 터미널을 닫으면 그대로 적용된 설정이 풀립니다. 혹은 MacOS 를 재시동하면 풀려..
1. 개요 안드로이드 6 부터 앱이 백그라운드에서 처리하는 작업으로 인해 소모 되는 배터리를 줄이기 위해 도즈(Doze) 와 어플대기 모드(App Standby) 정책을 추가했습니다. 안드로이드 7 부터는 세분화된 도즈 정책을 추가하였습니다. 이러한 배터리 효율 정책은 기기나 어플을 수면 상태로 만들어버리고 여러가지 제한이 발생하기 때문에 이러한 제한이 어플의 핵심 기능을 방해한다면 큰 문제가 발생하게 됩니다. 2. 도즈 (Doze) 2.1 안드로이드 6 (Marshmallow / 6.0 / API 23) 2.1.1 조건 충전기 연결이 되지 않은 배터리 동작이며, 화면이 꺼진 상태로 움직이 없는 경우가 일정 시간 이상 지속 되는 경우 진행됩니다. 2.1.2 제한 도즈가 진행되면 제한이 발생되고 도즈의 중..
소개 구글 I/O 에서 dark theme 에 대해서 발표한 내용이다. Dark theme 를 끄고 켜는 방식으로 변경 됬다고 함. Dark theme 의 작동 방식은 크게 4가지로 구분 되어 짐 Option A: Android Dark Theme 사용 Theme.AppCompat.DayNight : 이미 사용 가능 Theme.DeviceDefault.DayNight : Device 스타일에 맞춤 ThemeOverlay.DeviceDefault.Accent.DayNight : Device 스타일에 맞춤 근데 함정은 빡치게도 위 3가지 다 안됨 아놔... Option B: Dark Theme 를 강제 On/Off 사용 사용자의 설정 여부와 상관 없이, 앱 내부 코드로 활성/비활성화 시킬 수 있다. Opti..
에러 Gradle build 아래와 같은 문구가 출력되면서 build 실패 ERROR: Failed to install the following Android SDK packages as some licences have not been accepted. 원인 android SDK 최초 설치 시, SDK licence 에 동의하여야 하나 이를 수행하지 않아서 발생 해결 윈도우 기준 android sdk 가 설치된 디렉터리의 \tools\bin 의 경로로 이동합니다. linux, mac 등 다른 os 에서도 원리는 동일합니다. 아래의 명령어를 입력하여 licence 동의를 진행하여 줍니다. .\sdkmanager --licences
에러 com.android.tools.idea.gradle.project.sync.ng.NewGradleSyncNotSupportedException: New Gradle Sync is not supported due to containing Kotlin modules at com.android.tools.idea.gradle.project.sync.ng.SyncProjectModels.failIfKotlinPluginAppliedAndKotlinModelIsMissing(SyncProjectModels.java:131) at com.android.tools.idea.gradle.project.sync.ng.SyncProjectModels.failIfKotlinPluginAppliedAndKotlinMo..
에러 android app 을 개발하면서 glide4 라이브러리를 사용하여 http protocol 의 이미지 resource 를 load 하던 중 아래와 같은 에러를 만나게 되었습니다. W/Glide: Load failed for http://postfiles2.naver.net/20110128_97/opineo_1296174613378E0Ouo_JPEG/%BD%C5%BC%BC%B0%E6.jpg?type=w3 with size [1080x1080] class com.bumptech.glide.load.engine.GlideException: Failed to load resource There was 1 cause: java.io.IOException(Cleartext HTTP traffic to po..
설명 안드로이드에서 앱 업데이트 직후 앱이 실행 됬는지 알 수 있는 방법이 있다. 바로 아래 ACTION 이벤트 이다. android.intent.action.MY_PACKAGE_REPLACED 이 이벤트는 앱이 업데이트 되거나 재설치(android studio run) 됬을 때 호출 되는데 재설치는 상용에서는 고려 할 필요가 없을 것 같다. 애초에 상용에서 앱 업데이트를 내려 받을 때는 version code 가 다를 때만 해당하기 때문이다. # 사용하기 - 이제 이 코드를 적용 해보자. AndroidManifest.xml AppUpdateCheckReceiver.kotlin class AppUpdateCheckReceiver : BroadcastReceiver() { override fun onRec..
원인 일부 삼성 기기에서 간헐적으로 발생되는 버그이며, 이 경우는 화면이 회전해서 액티비티가 다시 만들어 질 때 발생하는 문제인데요 이 때 mView == null 이라는 에러가 발생합니다. 일부 삼성 기기의 내장 카메라 앱의 문제로 추측됩니다. 참고 https://stackoverflow.com/questions/56476427/e-viewrootimpl-senduseractionevent-returned https://stackoverflow.com/questions/18028666/senduseractionevent-is-null 하지만, 중요한 점은 신경쓰지 않고 그냥 넘길 수가 없는 경우가 있다는 것.. 저는 동영상 광고를 보여주는 과정에서 생겼는데.. 이 버그로 인해 광고가 노출 되지 않는 케..
Linitial
'Android' 태그의 글 목록