[구글 로그인] "error_description": "Malformed auth code." 문제 해결
문제 상황 400 Bad Request: "{ "error": "invalid_grant", "error_description": "Malformed auth code."}" 구글 로그인 구현 중에 위와 같은 에러가 발생했습니다. 구글링을 열심히 해봤지만 해당 문구와 관련된 자료가 적어서 해결하는데 고생했습니다. 😭 인증 코드가 잘못되었다는 것을 알려주고 있는데, 구글측으로 전달하는 id 토큰 값을 확인해봤습니다. 일반적으로 구글 로그인 로직은 아래와 같습니다. 1. 구글에 사용자 로그인 2. 구글에서 id token 값을 발급 3. id token 값을 서버로 보내서 서버에서 access token을 반환 위 경우 id 토큰 값을 백엔드 서버 개발자에게 전달해주면 서버에서 access 토큰을 반환했습니..
- [Android] Tech,Study/[Android] Trouble Shoot
- · 2024. 1. 10.
[Room 오류 해결] java.lang.IllegalStateException: Room cannot verify the data integrity.
문제 상황 룸 데이터베이스를 활용하는 중에 아래와 같은 오류가 발생하였습니다. java.lang.IllegalStateException: Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number. Expected identity hash: 118073d0ddf4d96739f8efb713ebd556, found: bb91b1f8c6584f92bc4ed367e358f416 생성한 데이터베이스 안의 테이블이나 컬럼들이 변경 되면 소스 상에서 변경된 상황을 App에게 ..
- [Android] Tech,Study/[Android] Trouble Shoot
- · 2023. 12. 31.
[Room] error: Cannot figure out how to save this field into database 문제 해결
에러 내용 error: Cannot figure out how to save this field into database. You can consider adding a type converter for it. error: Cannot figure out how to read this field from a cursor. Room Database를 사용하던 중에 위와 같은 에러가 발생했습니다. Room에 데이터를 저장할 때는 primitive type과 wrapping type만 지원합니다. 따라서 그 외의 LIst나 커스텀 클래스를 저장할 경우에는 converter를 지정해주여야 한다고 합니다. Converter의 사용법을 익혀서 문제를 해결해는 방식을 학습했습니다. Entity @Entity(tabl..
- [Android] Tech,Study/[Android] Trouble Shoot
- · 2023. 10. 2.
[Compose] 특정 텍스트 색상 변경에 대한 고민
문제 상황 Compose로 UI를 구성하던 중에 문제 상황이 발생하였습니다. 위의 이미지와 같이 검색 결과 중 검색어와 같은 글자의 텍스트 색상을 변경하는 디자인을 구성해야 했습니다. xml로 작업할 때는 RecyclerView의 adapter에서 함수를 사용해서 쉽게 변경할 수 있었지만, compose를 배우고 있는 터라 방법을 찾기 어려웠습니다. 구글링을 통해서 관련 라이브러리나 함수를 찾아보았지만 마땅한 방법이 없어서 직접 알고리즘을 구현하기로 결심하였습니다. 알고리즘 고민 단순히 검색 글자와 같은 부분을 찾아서 색상을 변경하기에는 아래와 같은 문제가 있었습니다. 1. 검색 내용을 여러개 포함하는 경우 - "바다" 단어로 검색을 하였을 때, "바다 앞 바다 카페" 의 검색 결과의 경우 2가지 검색 ..
- [Android] Tech,Study/[Android] Trouble Shoot
- · 2023. 9. 21.
[Android, Kotlin] Cannot create an instance of class ViewModel 문제 해결하기
[문제 상황] Caused by: java.lang.RuntimeException: Cannot create an instance of class ...ViewModel 위와 같은 에러 코드가 발생했다. 에러는 ViewModel에 파라미터를 객체를 넘겨주는 코드에서 발생했다. class RoutineViewModel( mainActivity: MainActivity ): ViewModel(){ 위와 같이 routine Model을 관리하는 RoutineViewModel에서 mainActivity를 인자로 받아야 했기에 RoutineViewModel 클래스의 생성자에서 mainActivity를 파라미터로 받기 위한 동작이 필요했다. [문제 해결] 문제 해결을 위해서 ViewModelProvider를 살펴봤..
- [Android] Tech,Study/[Android] Trouble Shoot
- · 2022. 12. 29.
[Android, Kotlin] 변수나 인스턴스 값 변경 시 다른 값도 변경 되는 문제 해결
[문제 상황] 일정을 표시하는 task 인스턴스를 만든 후에 여러 날짜의 task 인스턴스를 동시에 만들어 주고, 그 데이터를 관리하는 코드를 짜고 있었다. fun addTaskData(startNum:Int,endNum:Int,task: Task){ for (i in startNum..endNum){ currentMonthArr[i].apply { if (this.taskList == null) { this.taskList = ArrayList() } this.taskList!!.add(task) } } taskLiveData.value = currentMonthArr } 시작일과 끝일이 주어지면 전달된 task 인스턴스를 시작일부터 끝일까지 추가해주는 방식이었다. 성공적으로 데이터가 추가 되었으나 큰..
- [Android] Tech,Study/[Android] Trouble Shoot
- · 2022. 12. 18.