Gihak111 Navbar

빌드 후 앱 정지

앱을 빌드하고, 모바일에 깔아 실행했는데, 앱이 중지될 때가 있다.
이는 버젼이나, 권한에 따른 오류일 가능성이 높다.
안드로이드 스튜디오의 catlog을 확인하면, 엄청난 양의 오류가 나오곤 한다.

내 경우에 있었던 오류를 정리하고, 어디에 문제가 있는지 알아보자.

문제 요약

내 경우에는 권한, 선언 문제였다.

  1. 원래 두 개의 AndroidManifest.xml 파일에서 권한과 서비스 선언이 각각 따로 존재했고, 충돌이나 누락된 부분이 있었다.
  2. 이를 합치는 과정에서 명확한 권한 선언과 서비스 등록이 필요했다.
  3. 특히, 카메라 권한과 포그라운드 서비스 관련된 권한과 서비스 선언에서 오류가 발생했을 가능성이 높다.

이를 해결하기 위해, 다음을 이행했다.

  1. 권한 통합 카메라, 포그라운드 서비스, 네트워크 상태 접근 등의 권한이 두 곳에 각각 선언되어 있었고, 일부는 불필요하게 중복되거나 누락되어 있었다.
    이를 모두 하나로 정리하여, 필요한 권한을 명확하게 한 번만 선언함으로써 불필요한 충돌을 방지했다.
  2. 서비스 선언 통합 CameraMonitorService, SNSMonitorService, NetworkMonitorService, PermissionMonitorService 등이 각각 별도로 선언되어 있었다.
    이 서비스를 android:foregroundServiceType 속성을 통해 각각 적합한 포그라운드 서비스 타입을 지정해주어 명확하게 정의했다.
    예시: 카메라 관련 서비스는 foregroundServiceType=”camera”, 데이터 동기화는 foregroundServiceType=”dataSync”로 지정해 각 서비스가 역할에 맞게 동작하도록 했다.
  3. 리시버 등록 두 파일에 리시버 선언이 누락된 경우가 있었지만, 이를 통합해서 SNSEventReceiver 같은 리시버도 명확하게 선언했다.

해결 결과

권한과 서비스, 리시버가 적절하게 통합되어, 오류가 사라졌다.
중복되거나 누락된 선언들이 모두 정리되면서, 불필요한 권한 충돌이나 서비스 등록 오류를 방지할 수 있었다.

결과적으로, 중복된 선언과 누락된 요소를 통합함으로써 오류가 발생하지 않도록 해결한 것이다.
하지만, 이는 빌드시에는 잡지 못하는 오류이다.