Material Design 3를 기반으로 게시판 애플리케이션을 만들고 있던 도중
로그인을 성공했다고 가정하고 메인 화면으로 넘어가는 과정에서 Exception이 발생해 강제종료되는 상황이 발생했다.
보여져야하는 프래그먼트에는 DrawerLayout을 기반으로 CoordinatorLayout과 NavigationView를 보여주도록 기획하고 있었다.
Logcat을 봤을 때 정확한 사이즈를 입력해야 한다고 되어있어 xml파일을 봤지만 match_parent로 설정되어있었고
구글링을 통해서 비슷한 사례를 검색해봐도 DrawerLayout의 사이즈를 wrap_content가 아닌 match_parent로 설정하라는 케이스가 전부였다.
ChatGPT에서도 사이즈를 match_parent로 설정했는지 확인하거나, 코드 상 xml파일과 충돌을 일으키는 부분이 있는 지 점검하라는 답변이 전부였다.
이틀간 이런 오류때문에 고생하고 있던 도중에 매우 간단하게 처리할 수 있었는데, 과정은 다음과 같다.
로그인 화면 이후에 보여줄 Fragment의 xml이다.
사이즈를 모두 match_parent로 설정해도 오류가 일어났다.
문제의 java.lang.IllegalArgumentException DrawerLayout에 정확한 사이즈를 입력하라고 강제한다.
나는 MainActivity에 하나의 FragmentContainerView를 배치하는 방식으로 개발했는데
여기있는 FragmentContainerView의 사이즈가 wrap_content로 되어있던 것이다.
때문에 아무리 DrawerLayout의 사이즈를 잘 설정해도 여기서부터 오류가 발생했던 것
MainActivity의 FragmentContainerView의 사이즈를 match_parent로 설정해주고나니 간단하게 해결되었다
정상적으로 Fragment가 실행된 모습