인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Mia님의 프로필 이미지

작성한 질문수

[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)

Navigation 구현 - 3

NavController error 발생

작성

·

42

0

image.png

네비게이션 에러가 자꾸 발생하는데 강의대로 다 셋팅했는데도 자꾸발생됩니다.. 바로 이전질문에 남긴 깃헙주소입니다

 

네비게이션 오류 발생!

java.lang.IllegalStateException: View android.widget.FrameLayout{139213e V.E...... ........ 0,0-1080,2205} does not have a NavController set

 

 

https://github.com/Passionhruit/my_solo_life

 

 

답변 1

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. Mia님.

java.lang.IllegalStateException: View does not have a NavController set 오류는 Android 앱 개발 시 네비게이션 컴포넌트를 사용할 때 자주 발생하는 이슈입니다. 네비게이션은 특정 View에 NavController를 연결해야만 제대로 동작합니다.

이 문제를 해결하기 위해 확인해야 할 몇 가지 사항은 다음과 같습니다:

  1. NavHostFragment를 포함하고 있는지 확인: XML 레이아웃 파일에서 NavHostFragment를 적절하게 설정했는지 확인하세요. 예를 들어:

    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        app:navGraph="@navigation/nav_graph"
        app:defaultNavHost="true"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    

    nav_host_fragment ID는 Java/Kotlin 코드에서 사용됩니다.

  2. NavController 설정: NavHostFragment와 연결된 NavController를 가져와야 합니다. 이 코드를 Activity 또는 Fragment에서 실행하세요.

    val navController = findNavController(R.id.nav_host_fragment)
    

    위 코드에서 R.id.nav_host_fragment는 XML에 설정한 NavHostFragment의 ID와 일치해야 합니다.

  3. 먼저 Layout 파일 확인: XML 파일이 정확히 작성되어 있는지, 그리고 네비게이션 그래프를 제대로 불러오고 있는지 확인하세요.

관련된 기존의 유사한 문제와 해결 방법이 설명된 게시물을 아래에서 확인할 수 있습니다.

  1. 섹션 3 - Navigation 구현에서 발생한 에러 해결 - 이 게시물에서는 NavHostFragment에 대한 조언을 포함하여 다양한 방향에서의 해결책을 제시하고 있습니다.

위 내용을 참고하시어 다시 시도해 보신 후에도 여전히 문제가 발생한다면, 깃허브 코드와 관련해서 특정 지점에 대한 더 많은 정보를 제공해주시면 추가적인 도움이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Mia님의 프로필 이미지

작성한 질문수

질문하기