android:exported 속성 필수 이유 (Android 12 대응)

2025. 3. 24. 16:03Android/Android 기초

728x90
반응형

 

Android 12(API 31) 이상부터는 Intent-filter가 설정된 컴포넌트(Activity, Service 등)는

반드시 android:exported를 명시해야만 한다.

명시하지 않으면 Manifest 병합 시 에러가 발생해서 앱이 아예 빌드되지 않는다.

<activity
    android:name=".MainActivity"
    android:exported="true"> <!-- ✅ 꼭 있어야 함 -->
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

▶️ true: 외부 앱에서 이 Activity 실행 가능 (런처 진입점 등)

▶️ false: 내부 컴포넌트 (BroadcastReceiver 등 내부 호출만 허용)

 

몰랐을 땐 그냥 안 써도 되던 거지만,

이제는 무조건 써야 하는 필수 속성임을 알게 됐다.

 

 

728x90
반응형