1. 첫 오류
챗봇 프래그먼트로 이동 자체가 안되는 이쓔가 있었다.
java.lang.ClassCastException: android.app.Application cannot be cast to com.mit.offroader.ui.fragment.chatbot.ChatBotApplication
// ChatBotFragment:
private val chatBotViewModel: ChatBotViewModel by viewModels {
ChatBotViewModelFactory((requireActivity().application as ChatBotApplication).repository)
}
// ChatBotApplication:
package com.mit.offroader.ui.fragment.chatbot
import android.app.Application
import com.mit.offroader.ui.fragment.chatbot.database.ChatBotDatabase
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.SupervisorJob
class ChatBotApplication: Application() {
val applicationScope = CoroutineScope(SupervisorJob())
val database by lazy { ChatBotDatabase.getDatabase(this, applicationScope)}
val repository by lazy { ChatBotRepository(database.getChatBotDao())}
}
해결 : manifest application안에 이름 정의해주기
2. 다시 실행하니 다른 오류 발생
Cannot find implementation for com.mit.offroader.ui.fragment.chatbot.database.ChatBotDatabase. ChatBotDatabase_Impl does not exist
해결:
아래 implementation 추가
kapt ("androidx.room:room-compiler:2.6.1")
룸디비 값에 저장 성공 !
3. 뷰모델이랑 룸이랑 연결 성공하고 이제 리사이클러뷰에 잘 넣어보려고 하는데 리사이클러뷰가 나타났다가 바로사라지는 문제가 있음. (ㄹㅇ챗버블이 깜빡깜빡임)
오 그런데 바로 다시 나타남..
이게 뭐징.
다른 프래그먼트에 갔다가 다시 챗봇 프래그먼트에 돌아오면 정상적으로 디비에 값이 저장되어있음을 확인할 수 있다. 지금 프래그먼트 내부 라이프사이클을 한번 다시 정리해봐야할듯?
해결 : 챗 입력값을 object에서도 저장하고 데어터베이스에서도 저장해서 일어났던 문제욨다. 그냥 내가 바보..
4. DB 구조 수정 → MIGRATE하라고 뜸
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.
clear project & Invalidate caches 둘다 해봤지만 해결해주지 않음. 다연한게 캐시에 저장안하려고 DB 쓴건데 그거 지운다고 바뀔까..
DB 버전을 Migrate하거나 DB 저장 내역을 지워야함.
How To Reset Room DB Completely (Including Primary Keys) | Android
위에 링크에 상세하게 나와있는데 어떻게하는건지 모루겠음..
2시간 고민하고 찾아봤는데 그냘앱 지웠다 깔면 됨. 허무하다.. 원래 무슨에러 고치고 있었는지도 까머금..
'내일배움캠프 (스파르타 코딩 클럽) 안드로이드 2기 > TIL' 카테고리의 다른 글
코드 MVC -> MVVM 전환 트러블 슈팅 (0) | 2024.03.10 |
---|---|
listAdapter 아이템이 update될 때 깜빡이는 이쓔 (0) | 2024.03.08 |
코틀린| MVVM & 파이어스토어 데이터베이스에서 데이터 가져오기 (1) | 2024.03.06 |
[TIL] 숙련주차 회고 KPT (0) | 2024.01.23 |
[TIL] 커스텀 다이얼로그 Positive Button 활성화 / (0) | 2024.01.17 |