728x90

Android 13

The consumer was configured to find a runtime of a component compatible with Java 11, packaged as a jar, and its dependencies declared externally. However we cannot choose between the following variants of org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.1..

안드로이드 스튜디오 Arctic fox 로 업그레이드 후 그간 미뤄왔던 Gradle 7.0 버전을 적용하기로 했다. 그리고 Gradle 7.0 을 적용하면서 반드시 필요하게 된 Java 11 도 함께 적용하기로 결정하고 기존 프로젝트에서 마이그레이션을 진행하였으나..... 따다다다단..... 머리 씨부리쌋노... -_-; 하라는데로 시키는데로 했는데! A problem occurred configuring root project ''. > Could not resolve all artifacts for configuration ':classpath'. > Could not resolve org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10. Required by: pro..

IT/Android 2022.08.09

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

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

IT/Android 2022.03.25

[Android] FragmentPagerAdapter와 FragmentStatePagerAdapter 차이

Android 개발을 하다 보면 ViewPager를 사용할 필요가 종종 생겨난다. ViewPager를 사용할 때 Fragment와 함께 사용하는 경우가 대부분인데, 그럴 때 고민이 되는 것은 Adapter를 어떤 것을 연결해서 사용할 것인가? 이다. FragmentPagerAdapter 는 FragmentPagerAdapter와 FragmentStatePagerAdapter의 2가지로 나뉜다. 결론부터 말하면 FragmentPagerAdapter와 FragmentStatePagerAdapter 중에 고민이 된다면 FragmentStatePagerAdapter를 쓰세요. Google Android Developer 사이트를 찾아보면 사전적(?)인 의미는 아래와 같다. FragmentPagerAdapter ..

IT/Android 2019.08.27

[Android] Recyclerview 에서 마지막 아이템 판단하는 방법(Detect when the RecyclerView reaches the bottom)

최근 안드로이드에서는 리스트뷰(Listview) 대신 리사이클러뷰(Recyclerview)를 사용하는 추세로 흘러가고 있다. 리스트뷰의 단점인 메모리 관리나 리스트 레이아웃의 제한적인 기능을 보완할 수 있기 때문이다. 리사이클러뷰를 사용하면 구글 킵처럼 2개의 열에 다양한 크기의 리스트 아이템을 보여주는 것도 가능하고(staggeredGridLayoutManager) 메모리 관리 면에서도 장점이 있다고 한다.각설은 여기까지 하고, 리사이클러뷰를 사용하면서 마지막 아이템을 판단하는 부분이 은근 사용할 곳이 많다. 마지막 아이템이 보여지면 그 다음 데이터를 로딩한다거나.. 마지막 아이템이 보여질때 풋터(Footer)를 추가한다거나 하는 등의 작업을 할때 유용하다. 주로 전자의 경우 많이 사용하게 될 것이다...

IT/Android 2019.02.08

[Android] consider adding at least one Activity with an ACTION-VIEW intent filter. 에러 해결

최근 안드로이드 개발을 하다보면 이전에는 볼 수 없었던 에러 or 경고가 발생하는 것을 알 수 있다.AndroidManifest.xml 에서 아래와 같은 경고가 발생하는 것을 볼 수 있다.App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW intent filter. See issue explanation for more details. 이 경고를 해결하는 법은 아주 간단하다. 아래의 소스처럼 android.intent.action.VIEW 액션을 한 줄 추가해준다. 저 경고를 좀 더 살펴보면 아래와 같은 메세지를 볼 수 있다.App is not indexable by Google Se..

IT/Android 2019.01.29

[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

[OKHttp3] java.lang.NullPointerException: Attempt to get length of null array / BasicTrustRootIndex 관련 에러 처리

오늘은 OKHttp3 에서 발생하는 에러 처리를 다루어 보겠다.OKHttp3에서 원활한 https 를 접속하기 위해서 대부분 인증서를 무시하는 코드를 함께 넣어서 client 를 빌드해서 사용하는 경우가 많다.그 때 흔하게 발생하는 에러 중 하나는 아래의 에러이다.java.lang.NullPointerException: Attempt to get length of null array,BasicTrustRootIndex 관련 메세지들.. 위의 에러는 주로 아래 코드가 문제가 된다. 아래의 getAcceptedIssuers() 의 return null; 이 부분이 문제./** * UnCertificated 허용 */ public static OkHttpClient.Builder configureClient(..

IT/Android 2018.11.29

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
728x90