HOME技術AndroidAndroidアプリ:When using intent filters, please specify ‘android:exported’ as well

Androidアプリ:When using intent filters, please specify ‘android:exported’ as well

Android Studioで「When using intent filters, please specify ‘android:exported’ as well」というエラーメッセージが表示されたので調べました。

IntentFilterにおいてexportedを明示的に宣言する

この問題はAndroid12(SDK API31)以降のAndroidManifest.xmlファイルにおいて、android:exportedを設定していないときに表示されます。

Android11まではandroid:exprotedを宣言しなくても自動的に設定されるようになっていました。

AndroidManifest.xml内で、intent-filterを指定しているときに、そのActivityを外部アプリから呼び出せるようにするか否かの設定です。
android:exported=”true” → 外部アプリに公開する
android:exported=”false” → 外部アプリに公開しない

Android11までは、宣言がなければ、intent-fileterがある場合には、自動的に公開に設定されていましたが、Android12以降では明示的に公開にするか非公開にするかを指定しなければなりません。

exportedの宣言方法

基本的に外部アプリに公開するつもりなくつくっている場合には、非公開に設定しておきます。

<activity android:name=".MainActivity"
    android:screenOrientation="portrait"
    android:exported="false">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

関連記事

Androidアプリ:ボタンやEditTextに余白(パディング)を設定する

Android StudioでボタンやEditTextに余白(パディング)を設定します。 余白の設定はレイアウトファイル(activity_main.xml)を編集します。 activity_main…続きを読む

Androidアプリ:ボタンの仕様を1つのxmlファイルにまとめる

Android Studioで、ボタンなどの色や形の指定をする際、1つのxmlファイルで、ボタンを押したときと押していないときの状態を指定する方法です。 xmlファイルの指定 Android Stud…続きを読む

Androidアプリ:android:fullBackupContentの宣言

Android Studioで、以下のようなエラーメッセージが表示されました。 On SDK version 23 and up, your app data will be automaticall…続きを読む

Androidアプリ:動画を再生する

Androidアプリで動画を再生する方法です。 読み込み時は最初の1コマ目をプレビューしている状態で静止しています。 MainActivity.java javaのソースには以下のように記します。 こ…続きを読む

Androidアプリ:画面遷移時に値を渡す

Androidで画面遷移時に値を渡す方法です。 数値を渡す場合 MainActivity.java public class MainActivity extends Activity { @Over…続きを読む

Androidアプリ:テキストをリスト表示する

Androidアプリで、ListViewを使い、配列に格納したテキストをリスト表示します。 MainActivity.java import android.app.Activity; import …続きを読む

Androidアプリ:ボタンを押すとメッセージが入れ替わる

Android StudioでAndroidアプリを試作します。 今回は「ボタンを1回押すとテキストの内容が変わり、もう1回押すと元に戻る」というだけのアプリをつくります。 プロジェクトの生成 And…続きを読む

Androidアプリ:タイトルバーを消す

Android Studioで、タイトルバーを消す方法です。 通常は、以下のように画面上部にタイトルバーが表示されています。 AndroidManifest.xmlを編集する android:them…続きを読む

Androidアプリ:背景に画像を指定する

Android Studioを使って、背景に画像を設定する方法です。 背景画像を格納する 今回は以下の画像を使います。 画像サイズなどは適当につくります。 Androidは様々な解像度がありますが、画…続きを読む

Androidアプリ:ボタンやEditTextを角丸にする

Android StudioでボタンやEditTextを配置して、角丸にします。 角丸や色などを指定する場合には、それ専用のxmlファイルを別途用意し、読み込ませるようにします。 ボタンの背景色と角丸…続きを読む