프로그래밍 공부/공부일지

210507 Unresolved Reference : FragmentTitleBinding 에러

홀싀 2021. 5. 8. 01:12
728x90

(추가)

Unresolved Reference :

말그대로 지금 쓰려는 변수명이 뭔지 모르겠다는것

먼저 점검해볼것은

1. 오타

2. 필요한 class나 library가 제대로 import 되지 않음(class 를 만들지 않음)

또,, 여러가지 경우의 수가 있겠지만 이 키워드를 검색해보는 나같은 초짜시라면은 

위 두가지 경우일듯함...

나는 2번인 셈인데 import 안된게 캐시문제였던거같다. 

 

 

저번에 Navigation 구현(?) 중 막힌게 이 오류였다... 

Fragment 의 코틀린 코드 부분, OnCreateView 에서 data binding 을 위한 코드를 작성하는데 

 

val binding = DataBindingUtil.inflate<FragmentTitleBinding>(inflater,
R.layout.fragment_title, container, false )

 

요기서 FragmentTitleBinding 부분에 빨간색 쫘악....

아무것도 모르는 나는 도대체 FragmentTitleBinding 이 어디 라이브러리에있는건지 예제에서는 정의가되어있는데 내 파일엔 안되어있는건지 토털리 길을잃고 헤메다가 Fragment 부분을 다시공부하는중...

 

 

보니까 근본적으로는(?) 

import com.example.android.navigation.databinding.FragmentTitleBinding

요게 import 되지 않은게 문제였던듯 하다

 

( data binding 을 켜고 fragment_title.xml 레이아웃 파일을 작성하면 자동으로 위 이름처럼 클래스가 만들어지고 저걸 자동완성으로 쓰면 안드스튜디오가 알아서 임포트해주는데...  

databinding 부분부터 추천이 안떴었다....  )

몰라..왜 저번에는 임포트 추천도 안해주고 그런거야 안드스튜디오야... data binding 사용한다고 Gradle에 썼는데 왜...

 

스택오버플로의 질문글을 보니 data binding On 해주고 Sync한 후에 리빌딩을 해줘야한다고한다...

오류가 나면 File > Invalidate Caches / Restart 해보라고...

이렇게 해서 해결은 했는데

그래서 저게 뭔지 또 구글링 해보고 안드 공식문서도 검색해봤는데 잘 못찾는건지 여전히 잘 모르겠다..... 

안드 공식 교육자료에 따르면 

To inflate the Fragment's view, call the DataBindingUtil.inflate() method on the Fragment's Binding object, which is FragmentTitleBinding.

요렇게 나와있는데...............뭐...그래서 저게뭐라고...?하.....

 

 

 

다음에도 또 그러면 참고하고자 글로 남겨두기!

 

뭐암튼 다시 공부하는건 손해는 아닌거같아서 Fragment 생성과 Navigation, Data binding은 다시 찬찬히 복습해볼 생각이다... 

 

 

 

* 언급 된 정보들의 출처

더보기

 

728x90