만났던 에러들 (7) 썸네일형 리스트형 카카오네비게이션 KNError(code=C103, msg=SDK Certification Failed - INVALID_TOKEN, tagMsg=null, extra=null) 에러 과정을 다 보고 싶은 사람은 정독을 하면 되지만, 굳이 그런게 아니라면 그냥 ctrl+F 를 누르고 "여기서 부터" 를 입력후 해당 부분부터 블로그의 글을 보세요. 에러구문에서 이미 무엇이 잘못되어 있는지 확인할 수 있다.토큰값이 잘못됐다는 말인데 이는 카카오 developer 사이트에 키 해시값을 잘못 설정했다는 말이다.개발하는 pc마다 다 따로 키 해시값을 뽑아내서 등록해줘야 하고 윈도우냐 맥이냐에 따라 방법도 다르다. 맥의 경우는 key hash의 값을 뽑아내는게 엄청 쉬웠다. 하지만 안드로이드의 경우는 조금 더 복잡했다.우선 안드로이드의 terminal 창을 열고 open ssl 명령어를 입력해야 하지만 따로 설치를 하지 않았다면 에러를 만나게 된다. " 'openssl’은 내부 또는 외부 명령,.. 플레이스토어 앱심사 거부 "앱에서 이메일 주소를 수집하고 있음에도 불구하고, 데이터 보안 섹션에 이 사실을 명시하지 않았거나 부정확하게 기재한 것으로 보입니다." 플레이스토어에 심사를 등록했던 앱이 "앱에서 이메일 주소를 수집하고 있음에도 불구하고, 데이터 보안 섹션에 이 사실을 명시하지 않았거나 부정확하게 기재한 것으로 보입니다." 라는 이유로 거부당했다. 아래 내용을 요약해보면 "플레이스토어가 너네는 사용자의 데이터(이메일 주소)를 수집하고 있으면서 왜 그것을 명시하지 않는거임? 명시하기전까진 앱 배포 승인안해줄거임" 라는거다. 해결책플레이콘솔 접속 -> 앱 콘텐츠 -> 개요 -> 데이터 수집 및 보안 여기까지 제대로 왔다면 아래 사진처럼 보일거다. 아래 부분 체크가 안되있었음. 체크해서 앱의 데이터 보안양식에서 필요하다는 사실을 알리자. 아래와 같이 바뀌네. "시작" 버튼을 눌러서 본인의 상황에 맞게 다 처리를 하고나면 아래의 사진처럼 바뀐다. 우측하.. android14기종에서 뒤로가기(backPress) 동작하지 않는 버그 고치는 방법 개발하고 있는 앱에서 OS가 13버전 이하인 경우는 뒤로가기 backPress가 잘 동작했지만 14버전은 잘 동작하지 않는 버그가 생겼다. 버그의 원인요약 및 해결책 : 안드로이드 os14버전 부터는 뒤로 탐색 예측 동작지원이라는 기능이 추가되고 해당 값에 대한 매니페스트 값을 설정해줘야 하는데 true로 설정되어 있어서 false로 바꿔줬다. 여기서부터는 자세한 설명이다. 안드로이드의 os가 14로 넘어오면서 부터 "뒤로 탐색 예측 동작 지원" 기능이 추가됐다.아래 공식문서를 전부 읽을 필요는 없고 그냥 들어가서 "그림1"을 확인하면 무슨 말인지 곧 바로 이해할 수 있다.https://developer.android.com/guide/navigation/custom-back/predictive-back.. 안드로이드 targetSdkVersion 을 33 (android 13버전)으로 올릴때 사용자 권한(user permission) 주의점 이번 프로젝트의 targetSdkVersion 을 31에서 33으로 올렸다. 앱을가장 처음 시작하면 사용자에게 권한요청을 해야한다. 33으로 버전을 올리자마자 권한요청 기능이 동작하지 않았다. 아래의 코드가 이번에 문제가 발생했던 코드다. private void checkPermission() { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R){ if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this, Manifes.. Cannot access database on the main thread since it may potentially lock the UI for a long period of time. 안드로이드에서 roomDB를 쓰는데 아래 에러를 만났다. Cannot access database on the main thread since it may potentially lock the UI for a long period of time. 우선 위의 에러를 해결한 방법을 설명하기 앞서서 하나 알아둬야 할게있다.안드로이드에선 외부통신(핸드폰 내부에 저장한 데이터 RoomDB나 SQLlite, Retrofit을 통해서 외부 api 통신에서도)을 메인 스레드에서 동작시키면 안된다.자 그렇다고 치더라도...뭔가 이상하다. 코루틴을 사용해서 veiwModelScope 에서 메소드를 실행하면 자동적으로 메인스레드가 아니라 워커 스레드에서 동작하는 것으로 알고 있는데 메인스레드에서 코드가 동작하고 있다는 말일.. android.os.BadParcelableException: Parcelable encountered IOException writing serializable object (name = model.Images) 아주 오래전에도 한번 만났던 오류인 것 같은데.. 에러가 발생했던 이유는... Serialize 할 수 없는 객체인 Uri를 DataClass 에서 사용하려고 했었기 때문이다. 아래 코드는 내가 작성한 Model 클래스다. import android.net.Uri import java.io.Serializable data class Images(val uri : Uri) : Serializable 이미지 하나만 보여주는 리사이클러뷰를 표현하기 위해서 위와 같이 개발했다. 갤러리에서 사진을 여러장 선택하면 사진 uri값이 list에 담기고, 인텐트를 사용해서 다음 화면(액티비티)로 넘겨주려고 했다. 해당 코드는 아래와 같다. ChooseMediaActivity.kt ... // onCreate 안이다. b.. java.lang.IllegalStateException: Flow invariant is violated:Emission from another coroutine is detected. 에러 내용 java.lang.IllegalStateException: Flow invariant is violated:Emission from another coroutine is detected. Child of StandaloneCoroutine{Active}@b93bc05, expected child of StandaloneCoroutine{Completed}@20ec45a. FlowCollector is not thread-safe and concurrent emissions are prohibited. To mitigate this restriction please use 'channelFlow' builder instead of 'flow' 아마 글자가 작아서 잘 안보이실분들을 위해서 사진으로.. 이전 1 다음