728x90

안드로이드 11

안드로이드 앱 개발 중 아이콘이 갑자기 안보이는 경우

안드로이드 개발을 하다가 보면 갑자기 앱 아이콘이 사라지는 경우가 있다. 보통의 경우 intent-filter 를 설정 때문에 문제가 발생하게 된다. 특히 딥링크 개발하며 scheme이나 host를 매니페스트에 설정하다가 본 이슈가 발생하는 경우가 있으며 다음과 같이 해결할 수 있다. 문제 발생 문제 해결 여기서 핵심은 로 선언되는 intent-filter는 별도로 분리해야 한다는 것이다. 동일 intent-filter 에 넣는 경우 태그의 우선순위(?)가 높아 , 가 무시되는 것으로 보인다. 실제 안드로이드 개발자 사이트에서도 다음과 같이 언급하고 있다. 두 인텐트 필터는 요소만 다릅니다. 동일한 필터에 여러 요소를 포함할 수 있지만, 고유한 URL(예: scheme 및 host의 특정 조합)을 선언하..

IT/Android 2022.03.25

안드로이드 OpenCV 4.5.2 와 2.4.13.1 차이점

기존 안드로이드 OpenCV 프로젝트에 대해 최신 버전의 OpenCV를 마이그레이션 하면서 발생했던 문제점을 적어두는 곳입니다. OpenCV 2.4.13.1 의 Core.java에서 사용중이던 FONT_HERSHEY_PLAIN 상수, putText 메서드의 위치가 변경되었습니다. OpenCV 4.5.2 에서는 Core.java가 아닌 Imgproc.java로 변경되었습니다. 새로운 버전의 OpenCV로 마이그레이션 하는데 빌드 에러가 생각보다 많이 발생하네요.

IT/Android 2021.06.03

[Notification] 안드로이드 앱 중복 실행 문제 완벽 해결 방법

안드로이드 애플리케이션을 개발하다 보면 대부분의 개발자들이 필수적으로 겪는 문제가 있다.1. 앱 사용중 알림을 누르면 앱이 중복으로 실행되는 문제. 2. 뷰페이져 갱신 문제.위 2개의 문제는 아주 흔하게 겪는 문제인데, 해결 방법이 찾기가 어렵다. 검색을 해보면 많은 해결 방법들이 우리를 기다리고 있지만 내가 원하는 방향으로 해결되지는 않고.. 흔한데 해결하기 어려운 문제이다.2. 뷰페이저 갱신 문제는 내 블로그에도 포스팅이 되어 있지만 완벽한 해결방법도 아니고, 성능 또한 떨어지는 문제가 있다. 최근 완전한(?) 꼼수(?) 해결방법을 찾아냈고,(구글링으로 계속 찾아봤지만 원하는 답변은 없었고, 결국 뷰페이저 어댑터를 잘 사용하는 것으로 문제를 해결해냈다.) 곧 포스팅 할 예정이다. 기존 포스팅은 [IT..

IT/Android 2019.01.21

[Android] switch error : constant expression required

안드로이드 뿐만 아니라 자바로 프로그래밍 할 때 switch 문을 많이 사용하게 된다.그 때 간혹 "constant expression required" 라는 에러를 마주치는 경우가 있다. 처음 겪는 개발자라면 뭐가 문제인지 몰라서 삽질을 하는 경우가 발생한다.에러가 발생하는 원인은 case에서 사용하는 상수의 경우 반드시 final 로 선언이 되어야 한다는 것이다.아래의 예제에서 RC_SIGN_IN에 final 이 붙어 있지 않으면 위의 에러가 반드시 발생하게 된다.상수로 처리되는 구문의 경우는 무조건 final을 붙여서 변수 값이 변동되지 않도록 한다.public static final int RC_SIGN_IN = 9001; switch (requestCode) { case RC_SIGN_IN: /..

IT/Android 2018.12.04

Json 파싱 이해하기. (JsonObject, JsonArray, JsonElement)

안드로이드나 자바를 개발하다 보면 Http 통신을 사용해야 하는 경우가 대부분이다. 디바이스 자체에서 알아서 돌아가는 단독앱(Standalone)은 안드로이드 초창기에나 있었고 지금은 자취를 거의 감춘 상태이다. 최소한 광고라도 붙이기 때문에 Http 통신과 관련된 응답(Json, Xml) 처리는 중요하다. 이제 응답 형식도 Json이 보편화되고 있기 때문에 개념을 잘 이해하고 있어야 한다. Json은 JavaScript Object Notation 의 약자이고, 데이터 교환 형식 중 하나이다. Json은 데이터만 봐도 내용을 이해하기 쉽기 때문에 좋다. 각설은 여기까지 하고 Json 파싱을 살펴보자. Json의 형식은 대충 아래와 같다. jsonObject 내용 { "status":"1", "messa..

IT/Android 2018.11.08

Android OKHttp3 에서 발생하는 NoClassDefFoundError: Failed resolution of: Lokhttp3/internal/Platform

안드로이드에서 OKHttp를 사용하여 웹과 통신하는 경우가 빈번하다.OKHttp3 를 사용하다보면 발생하는 에러 중 하나가 다음과 같다. Error java.lang.NoClassDefFoundError: Failed resolution of: Lokhttp3/internal/Platform; OKHttp 에서 필요한 클래스를 찾지 못해서 발생하는 에러이다. App build.gradle로 가서 OKHttp3 의 버전을 업그레이드 하면 대부분 해결이 된다. implementation 'com.squareup.okhttp3:okhttp:3.4.1' implementation 'com.squareup.okhttp3:okhttp-urlconnection:3.4.1' implementation 'com.squa..

IT/Android 2018.11.08

갤럭시S9(SM-G960N) 루팅하기

개발을 하면서 갤럭시S9의 정확한 로그를 보기 위해 필요한 권한을 얻기 위해 루팅을 진행했다. 주의보안 기능 녹스(KNOX)가 깨지기 때문에 삼성페이랑 보안 일부 기능을 이용할 수 없게 된다. 사전준비삼성 통합 USB 드라이버 설치(아래 공식 홈페이지 링크) -> https://www.samsungsvc.co.kr/online/downLoadSrchMain.do?anchorG=Y&stModelScrh=SM-G960N#anc 설정 -> 휴대전화 정보 -> 소프트웨어 정보 -> 빌드번호 6번 연속 터치 -> 개발자 옵션 활성화 설정 -> 개발자 옵션 -> USB 디버깅 활성화 -> OEM 잠금해제 활성화 ==> 활성화 하면 공장초기화가 진행되니 미리 중요한 데이터 백업. TWRP 리커버리 받기 https:/..

IT/Android 2018.11.07

ViewPager current view refresh (뷰페이저 현재 뷰 갱신)

안드로이드 개발을 하다보면 뷰페이저를 사용할 일이 많다.뷰페이저를 사용하면 단순한 뷰 이동을 사용할 수 있고, 이로 인해 UI/UX가 좋아지게 되어 사용자 친화적인 앱을 만들 수 있기 때문이다. 처음 뷰페이저를 사용하는 사람들이 봉착하는 문제점 중 하나는, 갹 페이저들에 있는 위젯의 업데이트 관련 문제들이다. 실제로 나도 각각의 페이저들의 리사이클러뷰의 데이터가 변경되었거나, 텍스트뷰의 텍스트가 변경되었다던지.. 그럴 때 해당 페이저를 업데이트를 해줘야 하는데 그것이 잘 되지 않아서 해결 방법을 찾느라 한참 고생했던 기억이 있다. 1. FragmentPagerAdapter 를 상속한 커스텀 어댑터를 만들어서 getItemPosition 을 오버라이드 하여 아POSITION_NONE 구문을 넣는다. 아래의..

IT/Android 2018.10.03

The specified message queue synchronization barrier token has not been posted or has already been removed.

안드로이드나 자바에서 스레드랑 핸들러를 다루다 보면 java.lang.IllegalStateException: The specified message queue synchronization barrier token has not been posted or has already been removed. 위와 같은 에러가 종종 발생을 한다. 음 나의 경우는 아래처럼 new Message 로 새로운 메세지 객체를 생성해서 보냈더니 발생했던 문제였다.Message msg = new Message(); msg.what = 1; mIntroHandler.sendMessage(msg); 아래처럼 변경했더니 그 이후로는 문제가 없었다.Message msg = mIntroHandler.obtainMessage(); ms..

IT/Android 2018.09.30

Pixel2 XL 커널 순정화 하기(boot.img)

픽셀 시리즈를 사용하시는 분들이라면 그냥 순정으로만 사용하시는 분은 적을 거라고 생각한다. 안드로이드에 어느 정도 지식이 있고 소위 말하는 롬질이라는 것을 해보고자 구매하시는 분들도 생각보다 많이 있을거라도 생각한다. 물론 그냥 순정 안드로이드 레퍼런스 폰을 사용해보기 위해서 구매하시는 분도 있을 것이다. 어쨌든.. 순정OS에 커널만 커스텀 커널(flash, elementalX) 등등을 올려서 사용하시는 분들도 많을텐데, 그런 분들을 위한 커널 순정화 작업 매뉴얼을 작성해본다. 일단 본인 OS 버전에 맞는 팩토리 버전을 받아야 한다.https://developers.google.com/android/images 위 주소에 가서 본인 모델에 맞는 팩토리 버전을 다운 받아서 압축을 해제하면 또 다른 압축파일..

IT/Android 2018.09.28
728x90