티스토리 뷰
안드로이드 스튜디오 오류: "Manifest merger failed: Apps targeting Android 12" 수정하기
맨날치킨 2023. 1. 9. 09:05Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
Android Studio error: "Manifest merger failed: Apps targeting Android 12"
안드로이드 스튜디오 오류: "Manifest merger failed: Apps targeting Android 12"
문제 내용
I have updated my emulator version and Android SDK version to Android S (Android 12). After the update, I cannot run the project. I cannot run a Hello, World! project (empty project), but I can build Gradle as well as, but I can not run the project. I always got the error:
저는 Android S (Android 12) 버전으로 에뮬레이터 버전과 Android SDK 버전을 업데이트했습니다. 업데이트 이후에 프로젝트를 실행할 수 없게 되었습니다. 빈 프로젝트인 'Hello, World!' 프로젝트도 실행할 수 없습니다. 하지만 Gradle은 빌드할 수 있습니다. 프로젝트를 실행할 수 없고 항상 다음과 같은 오류가 발생합니다:
Manifest merger failed: Apps targeting Android 12 and higher are required to specify an explicit value for
android: exported
when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.
Manifest merger failed: Android 12 이상을 대상으로 하는 앱은 해당 구성 요소에 intent 필터가 정의되어 있는 경우 android: exported에 명시적 값을 지정해야합니다. 자세한 내용은 를 참조하세요.
How can I fix it?
어떻게 수정해야 하나요?
Here is a screenshot:
여기에 스크린샷이 있습니다.
How can I solve this issue when using Android 12 SDK?
어떻게 안드로이드 12 SDK를 사용할 때 이 문제를 해결할 수 있나요?
This question is about the issue after applying the solution to this, and is different than this question. Also, this question is older than this.
이 질문은 이 해결책을 적용한 후 발생하는 문제에 대한 것이며, 이와 다른 질문입니다. 또한 이 질문은 이 질문보다 오래되었습니다.
높은 점수를 받은 Solution
You need to specify android:exported="false"
or android:exported="true"
"android:exported" 속성은 "false" 또는 "true"로 지정해야합니다.
Manifest:
매니페스트 파일
<activity
android:name=".MainActivity"
android:exported="true"
android:theme="@style/Theme.MyApplication.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
as mentioned in the document:
문서에서 언급한 대로:
If your app targets Android 12 and contains activities, services, or broadcast receivers that use intent filters, you must explicitly declare the android: exported attribute for these app components.
앱이 안드로이드 12를 대상으로 하고 있고, 인텐트 필터를 사용하는 액티비티, 서비스 또는 브로드캐스트 리시버가 포함된 경우 이러한 앱 구성 요소에 대해 android:exported 속성을 명시적으로 선언해야 합니다.
Warning: If an activity, service, or broadcast receiver uses intent filters and doesn't have an explicitly-declared value for android:exported, your app can't be installed on a device that runs Android 12.
경고: 만약 activity, service, 또는 broadcast receiver가 intent filters를 사용하고, android:exported에 명시적으로 선언된 값이 없다면, 해당 앱은 Android 12 버전을 실행하는 기기에 설치할 수 없습니다.
Also check when to use true/false for the 'android:exported' value.
'android:exported' 값에 대해 true/false를 사용해야 할 때를 확인하십시오.
가장 최근 달린 Solution
In your manifest, add android:exported="true" or android:exported="false " in your default launching activity attribute.
매니페스트에 있는 기본적인 액티비티 속성에서 android:exported="true" 또는 android:exported="false"를 추가하세요.
Done! You are all right to run your apps on Android 12.
완료되었습니다! 이제 안드로이드 12에서 앱을 실행할 수 있습니다.
Required by launcher activity
런처 액티비티에서 요구됩니다.
<activity
android:name=".MainActivity"
android:exported="true"
android:theme="@style/Theme.MyApplication.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Required by receiver
리시버에서 요구됩니다.
<receiver android:name=".Musicreceiver"
android:exported="true">
</receiver>
Required by services
서비스에서 요구됩니다.
<service
android:name=".service.LoggerService"
android:enabled="true" />
출처 : https://stackoverflow.com/questions/67412084/android-studio-error-manifest-merger-failed-apps-targeting-android-12
'개발 > 안드로이드' 카테고리의 다른 글
WebView 리소스 요청에 사용자 지정 헤더 추가하기 (0) | 2023.01.09 |
---|---|
Android의 상태 표시줄 높이 구하기 (0) | 2023.01.09 |
안드로이드 뷰의 배경 색상 애니메이션하기 (0) | 2023.01.08 |
안드로이드에서 다이얼로그 버튼 텍스트 색상 변경하기 (0) | 2023.01.08 |
액티비티 외부에서 getSystemService 호출하기 (0) | 2023.01.07 |