android:exported 속성 필수 이유 (Android 12 대응)
2025. 3. 24. 16:03ㆍAndroid/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
반응형
'Android > Android 기초' 카테고리의 다른 글
Single Activity Architecture(SAA) 전환 시 Navigation 구조 설계 방법 (0) | 2025.03.28 |
---|---|
[Android] 왜 Log.d() 대신 Timber를 써야 할까? (0) | 2025.03.26 |
좀비 같은 Activity 처리하기, finish()와 finishAActivity()의 차이 (0) | 2025.03.10 |
안드로이드 모듈 간 리소스 충돌 방지: 리소스 ID와 모듈 의존성 (0) | 2025.03.05 |
[Android/Gradle]Gradle에서 APK 생성 타입 설정하기 (0) | 2023.02.24 |