エミュレータのバージョンとAndroid SDKのバージョンをAndroid Sにアップデートしました(アンドロイド12)。アップデート後、プロジェクトを実行できません。こんにちは世界!プロジェクト(空のプロジェクト)ですが、Gradle をビルドすることはできますが、プロジェクトを実行することはできません。常にエラーが発生しました:
マニフェストのマージに失敗しました: Android 12 以降をターゲットとするアプリでは、
android: exported
対応するコンポーネントにインテント フィルタが定義されている場合に明示的な値を指定する必要があります。https://developer.android.com/guide/topics/manifest/activity-element#エクスポート詳細については。
どうすれば修正できますか?
スクリーンショットは次のとおりです。
Android 12 SDK を使用する場合、この問題を解決するにはどうすればよいですか?
ベストアンサー1
指定するandroid:exported="false"
か、android:exported="true"
マニフェスト:
<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>
前述の通り文書:
アプリが Android 12 をターゲットにしており、インテント フィルタを使用するアクティビティ、サービス、またはブロードキャスト レシーバーが含まれている場合は、これらのアプリ コンポーネントの android: exported 属性を明示的に宣言する必要があります。
警告: アクティビティ、サービス、またはブロードキャスト レシーバーがインテント フィルタを使用し、android:exported の値が明示的に宣言されていない場合、Android 12 を実行するデバイスにアプリをインストールすることはできません。
またチェック「android:exported」値に true/false を使用する場合。