1. 오랜만에 버그가 생겨서 한참 고생했다. 평소처럼 액티비티 클래스와 레이아웃 생성 후, 해당 액티비티를 생성하는 Intent 인스턴스를 만들어 startActivity()를 이용해 실행하려 했다.
그런데 디자인 해둔 레이아웃이 존재함에도 불구하고 계속 흰 화면만 나왔다.
로그를 찍어 확인해보니 startActivity() 위 아래의 코드 모두 정상적으로 진행되고 있었고, 레이아웃 문제인가 싶어 확인해보아도 딱히 특별할 것 없는 ConstraintLayout이었다. 차라리 앱이 저 순간에 죽거나 에러라도 띄운다면 문제를 쉽게 해결하겠는데 전혀 문제가 발생하지 않아서 원인 찾기가 더 힘들었다.
문제가 있는 액티비티의 onCreate() 내에 로그를 찍게 하고 확인하니 해당 로그가 전혀 찍히지 않았다. 아무래도 액티비티 생성 자체가 제대로 되지 않는 거 같았다.
manifest 파일도 여러번 확인해보고, 혹시 몰라 startActivity()를 try 문 내에서 실행해 예외가 있는지 보고, gradle 파일들도 확인해봤는데 전혀 문제가 없었다. startActivity()를 실행하는 Fragment가 문제인가 싶어 메인 액티비티에서 실행도 해보고, 프로젝트 clean 후 rebuild도 해보았으나 변화가 없었다.
AVD 문제라고 생각하기도 해서 다른 디바이스로 실행도 해보고 내 실제 사용 기기로 테스트 해보았으나 결과는 같았다.
1시간 넘게 끙끙 대다가, 임포트 된 클래스들을 확인하던 와중에 문제를 해결할 수 있었다.
PersistableBundle이 임포트 되어 있었는데, 내가 저런 걸 쓴 적이 있던가 싶었다. 그래서 해당 패키지를 지우고 코드 내에서 어느 부분에 문제가 생기는지 확인했는데
onCreate()를 잘못 오버라이딩 하고 있었다. 파라미터로 Bundle 객체만 받는 onCreate()를 오버라이딩 해야하는데 아무래도 내가 onCreate() 자동완성으로 작성할 때 실수한 거 같았다. 해당 부분을 고치고 다시 실행하니
허무할 정도로 쉽게 해결되었다. 앞으로는 자동완성 할 때 조심해야겠다..
'Dev > 안드로이드' 카테고리의 다른 글
[Android] Kotlin DSL 이용 시, API Key 은닉하기(AGP 9.0 미만) (0) | 2024.04.17 |
---|---|
[안드로이드 짤막공부] 23.09.30 (0) | 2023.09.30 |
[안드로이드 짤막공부] 23.08.22 (0) | 2023.08.23 |
[안드로이드 짤막공부] 23.08.21 (0) | 2023.08.22 |
[안드로이드 짤막공부] 23.08.01 (0) | 2023.08.01 |