사전 출시 보고서: Native crash of com.google.android.gms

안드로이드 앱 사전 출시 보고서에 빨간 오류 메시지가 나타났다. 구글 안드로이드 담당자의 답변을 살펴본다. Android 11(SDK 30) 어제 사전 출시 보고서에 빨간색 메시지가 하나 나왔길래 수정하여 새 버전을 업로드하였다. 오늘은 또 무슨 보고서가 나왔나 싶어서 들여다보니 어제의 그 오류는 없고 다른 오류가 생겼다. Native crash of com.google.android.gms*** *** *** *** *** *** *** *** *** … Read more

Play Console 7인치, 10인치 태블릿 스크린샷

앱 출시를 위해 스토어 등록 정보에 넣을 태블릿 스크린샷 때문에 고민하다가 의외로 쉽게 마무리된 일을 풀어 놓는다. 별표가 붙어 있는 태블릿 스크린샷 항목 앱을 출시하기 위해 비공개 테스트 절차를 진행하기로 했다. 입력해야 할 정보가 많다. 스크린샷을 올려야 하는 곳도 있다. 그중에 별표가 붙은 것만 골라 보면 다음과 같다. 다른 건 어찌어찌하면 되겠는데 태블릿 스크린샷이 문제다. … Read more

Play Console 개인 개발자 계정 & 법인 명의 AdSense 계정

D-U-N-S 에 막혀서 Play Console 개인 개발자 계정을 만들 수밖에 없었지만, 긴밀하게 관련된 구글 서비스 AdSense, AdMob, Play Console 을 이용하면서 어찌어찌하여 앱 수익이 법인 계좌로 들어가게 했는지 기록한다. AdMob 에 법인 명의 AdSense 연결 앱을 출시하기 위해서 AdMob 계정을 만들 때였다. 어느 단계에서 AdSense 계정을 입력하라고 한다. 나는 그때까지도 AdSense 와 AdMob 이 무슨 … Read more

Play Console 본인 확인 – 주민등록증

Google Play Console 개인 개발자 계정 만들 때 본인 확인 서류 대목에서 당황스러웠는데 결국 주민등록증으로 본인 확인에 빠르게 성공한 일을 이야기한다. 인증에 필요한 정보 앱을 다 만들어서 Google Play 에 출시하기 위해 Play Console 에 계정을 만들었다. 개인 계정을 선택한 이유는 아래에 적어 두겠다. Play Console 계정 생성 시에 여러 정보를 입력해 나가다가 본인 확인에 … Read more

source value 8 is obsolete and will be removed in a future release

android studio 앱 프로젝트에서 kotlinOptions {jvmTarget = “17”} 로 설정하여 java 8 과 관련한 경고 메시지를 해결한 과정을 기록한다. 언제부터인지 제목의 저 경고 메시지가 나온다. 사용하는 안드로이드 스튜디오는 Android Studio Iguana | 2023.2.1 Patch 2Build #AI-232.10300.40.2321.11668458, built on April 4, 2024Runtime version: 17.0.9+0-17.0.9b1087.7-11185874 amd64VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. 이다. 앱 실행에는 아무 … Read more

[Kotlin] for 루프에서 리스트에 원소 추가, 루프 끝나고 원소 하나 더 추가 => 오류 발생

forEachIndexed 블록 안의 for 루프 안에서 리스트에 원소를 추가하였다. 이 루프가 끝나고 그 리스트에 원소를 하나 더 추가하자 오류가 발생했다( java.lang.IndexOutOfBoundsException). if 문을 써서 문제를 해결했다. for 루프 밖에서 원소를 하나 더 추가하자 오류 발생 val numbers: MutableList<MutableList<Int>> // numbers 는 이미 다른 곳에서 초기화 되어 있다. val intervals: MutableList<MutableList<Int>> = mutableListOf() for (i in … Read more

[Kotlin][deep copy] 리스트의 마지막 원소가 사라져 버렸다.

Kotlin 코드에서 deep copy 를 하지 않은 채 원본을 clear 하니까 리스트의 마지막 원소가 사라지는 문제가 발생했다. 리스트의 마지막 원소만 사라진다. val testList: MutableList<Int> val listOfTestList: MutableList<List<Int>> .forEach 블록 내에서 testList 를 몇 개 생성하면서 listOfTestList 에 추가하였다: listOfTestList.add(testList) 나중에 listOfTestList 를 출력해 보니 감쪽같이 마지막 원소만 사라졌다. 마지막 element 가 [] 이렇게 빈 채로 … Read more

[해결]error.NonExistentClass: Hilt 로 ViewModel 에 Proto DataStore 인스턴스 전달할 때

Proto DataStore 에 Hilt 를 적용할 때 컴파일 오류가 발생하여 해결한 방법을 공유한다. Hilt + Proto DataStore + ViewModel 에서 문제 발생 지난 글에서 build.gradle.kts 를 공개한 이후 Proto DataStore 를 익혔다(지난 글: https://hhtt.kr/103026). 그런데 코드에 ViewModel Factory 를 이용해서 DataStore 인스턴스를 ViewModel 에 넣어주도록 되어 있어서 Hilt 로 주입하도록 바꾸려고 했다. 이 때, Preferences … Read more

[Attachment] build.gradle.kts for Compose + Retrofit + KSP + Room + Hilt

In order to apply Hilt to my project, I modified build.gradle.kts and updated Compose, Retrofit, KSP, Room, Hilt, etc. to the latest. Both build.gradle.kts are provided in an attachment. Korean version of this posting: https://hhtt.kr/103026 I decided to use Hilt. After struggling for over a day to apply HIlt to my project, I succeeded the … Read more

[첨부] build.gradle.kts for Compose + Retrofit + KSP + Room + Hilt

프로젝트에 Hilt 를 적용하기 위해서 build.gradle.kts 를 수정하고, 내친김에 Compose, Retrofit, KSP, Room, Hilt 등을 최신으로 판올림하였다. 두 build.gradle.kts 를 첨부 파일로 제공한다. Korean version of this posting: https://hhtt.kr/103039 Hilt 를 사용하기로 했다. 내 프로젝트에 HIlt 를 적용하기 위해서 하루 넘게 씨름을 하다가 그저께 저녁에 성공했다. 내가 목표한 것은, container 에 담긴 채 ViewModel Factory … Read more