개발/Android

안드로이드 앱 설치 후 실행 불가 및 아이콘 보이지 않는 문제 해결하기

D_Da 2024. 8. 14. 10:53

 

안드로이드 앱을 개발하거나 설치할 때, 간혹 앱 아이콘이 홈 화면이나 앱 서랍에 표시되지 않는 문제가 발생할 수 있습니다.

이런 상황은 주로 AndroidManifest.xml 파일에 정의된 인텐트 필터(intent filter)와 관련이 있습니다.

이번 포스팅에서는 왜 이런 문제가 발생하는지, 그리고 어떻게 해결할 수 있는지에 대해 알아보겠습니다.

 

0. 문제의 원인과 해결 방안

앱 아이콘이 보이지 않는 문제는 여러 원인에 의해 발생할 수 있습니다:

  • 잘못된 인텐트 필터 설정: MAIN과 LAUNCHER 인텐트 필터가 누락되거나 잘못 구성된 경우
  • 매니페스트 파일의 오류: AndroidManifest.xml 파일에 다른 설정 오류가 있는 경우
  • 추가된 인텐트 필터의 우연한 해결: 특정 인텐트 필터가 추가되면서 시스템이 앱을 올바르게 인식하게 되는 경우

해결 방안으로는 매니페스트 파일을 꼼꼼히 검토하여 MAIN과 LAUNCHER 인텐트 필터가 올바르게 설정되어 있는지 확인하는 것이 중요합니다. 앱이 다양한 인텐트 필터를 사용하고 있는 경우, 그 조합이 문제를 일으킬 수 있으므로 추가된 필터가 필요한지 여부를 신중히 고려해야 합니다.

 

1. 안드로이드 앱의 'MAIN'과 'LAUNCHER' 인텐트 필터

안드로이드에서 앱의 아이콘이 홈 화면이나 앱 서랍에 표시되기 위해서는 적어도 하나의 Activity가 필요하며,

그 Activity는 다음과 같은 인텐트 필터를 가져야 합니다:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

 

이 인텐트 필터는 안드로이드 시스템에게 이 액티비티가 애플리케이션의 시작점(MAIN)이며,

홈 화면이나 앱 서랍에서 실행 가능한 런처(LAUNCHER) 아이콘을 만들어야 한다고 알려줍니다.

이 설정이 없으면 앱은 설치되더라도 사용자가 앱을 쉽게 실행할 수 없고, 따라서 아이콘이 표시되지 않을 수 있습니다.

 

2. 추가된 인텐트 필터가 해결책이 된 이유

간혹, MAIN과 LAUNCHER 인텐트 필터가 제대로 설정되어 있음에도 불구하고 아이콘이 보이지 않는 경우가 있습니다. 이럴 때 특정 URL 스킴이나 다른 액션을 처리하는 인텐트 필터를 추가해 문제가 해결될 수 있습니다. 

이 인텐트 필터는 앱이 특정 URL을 처리할 수 있도록 정의합니다.

그런데, 이 필터를 추가하면서 아이콘이 정상적으로 보이게 되는 경우가 있습니다.

인텐트 필터나 매니페스트의 다른 부분이 앱의 인식 방식을 수정하여 문제가 해결된 것입니다.

<intent-filter>
   <action android:name="android.intent.action.VIEW" />
   <category android:name="android.intent.category.DEFAULT" />
   <category android:name="android.intent.category.BROWSABLE" />
   <data
       android:host="soddtistory"
       android:scheme="deeplink" />
</intent-filter>

 

이 포스팅이 간단해 보여도 헷갈리기 쉬운 문제 같아 문제를 해결하는 데 도움이 되길 바랍니다!