• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

Store가 null이 나옵니다

20.09.02 09:11 작성 조회수 123

0

java.lang.IllegalStateException: it must not be null 이런 에러가 나와서 확인해봤는데.. 

data class StoreInfo (var count : Int, var Stores: List<Store>)

이렇게 되어있고

 viewModel.apply {
itemLiveData.observe(this@MainActivity, Observer {
Log.e("tag", "뭐야 " + it)
storeAdapter.updateItems(it)
})

loadingLiveData.observe(this@MainActivity, Observer { isLoading ->
progressBar.visibility = if (isLoading) View.VISIBLE else View.GONE
})
}
}
data class Store(
var addr : String,
var code : String,
var created_at : String,
var lat : Double,
var lng : Double,
var name : String,
var remain_stat : String,
var stock_at : String,
var type : String
)

빠진거 없이 넣었는데 저기 로그 (뭐야) 찍어놓은곳이 count는 찍히늰데 stores가 null이 나옵니다

어디를 확인해봐야되는건가요..?

답변 3

·

답변을 작성해보세요.

1

이재윤님의 프로필

이재윤

질문자

2020.09.02

찾았네요.. data클래스 Stores s가 대문자였네요.. 

0

이재윤님의 프로필

이재윤

질문자

2020.09.02

class MainViewModel : ViewModel() {
val itemLiveData = MutableLiveData<List<Store>>()
val loadingLiveData = MutableLiveData<Boolean>()

private val service : MaskService

init {
val retrofit = Retrofit.Builder()
.baseUrl(MaskService.BASE_URL)
.addConverterFactory(MoshiConverterFactory.create())
.build()

service = retrofit.create(MaskService::class.java)

fetchStoreInfo()
}
fun fetchStoreInfo() {
loadingLiveData.value = true

viewModelScope.launch {
val storeInfo = service.fetchStoreInfo(37.188078, 127.043002)
Log.e("tag", "info "+ storeInfo.Stores)
itemLiveData.value = storeInfo.Stores

loadingLiveData.value = false
}
}
}

해당과같이 Mutable데LiveData로 초기화 하고있고 location은 강의대로 고정 위도경도 넣어주고있습니다 

(강의에서처럼 코틀린에선 현재 위도경도 안써서 강의대로 안쓰고 저렇게 넣어놨습니다!)

저기 info로 로그찍은 곳은 null이나옵니다 (itemLiveData도 null 로 들어가겠네요..) 

storeInfo.count로 하는경우에는 count가 222로 잘나오며 storeInfo.Stores만 자꾸 null이 나옵니다

0

1. ViewModel에서 itemLiveData를 MutableLiveData로 제대로 초기화 했는지.

2. itemLiveData 값이 제대로 들어오는지

3. locationProvider에서 위치 정보를 얻을 때 location이 null 인지

확인 해 보셔야 할 것 같습니다.

https://github.com/junsuk5/android_mask_info_kotlin/blob/master/app/src/main/java/com/example/maskinfokotlin/MainViewModel.kt