Слияние манифеста не удалось : android:экспортированный должен быть явно указан для , даже если в моем AndroidManifest.xml файл

#android #android-studio

Вопрос:

Не удалось объединить манифест : android:для экспорта необходимо явно указать . Приложения, ориентированные на Android 12 и выше, должны указывать явное значение android:exported , когда для соответствующего компонента определен фильтр намерений. Видишь https://developer.android.com/guide/topics/manifest/activity-element#exported для подробностей.

<services В файле моего приложения их нет AndroidManifest.xml , я также искал каждый AndroidManifest.xml файл, и в них также нет никаких <service элементов, так почему я получаю эту ошибку?

На вкладке «Объединенный манифест» нет ошибок, однако в первом манифесте их два <receiver , и я уже добавил android:exported в них свойство вручную.

введите описание изображения здесь

Комментарии:

1. Возможно, вы используете библиотеку, в которой есть служба. Вы проверили свой объединенный манифест? Для этого в редакторе манифестов в Android Studio есть вложенная вкладка.

Ответ №1:

В app -> > src -> > main -> > AndroidManifest.xml вам нужно явно добавить тег android:exported="true" в каждом <Activity> разделе <Application>

 <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.Eynetic">
    <activity android:name=".Splash_Screen"
        android:theme="@style/SplashTheme"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".MainActivity"
        android:theme="@style/MainTheme"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
 

Смотрите тег Действия в коде…

 <activity android:name=".Splash_Screen"
        android:theme="@style/SplashTheme"
        android:exported="true">
 

В настоящее время я делаю это с каждым действием, так как это была ошибка, выданная Android studio, но, возможно, есть лучший способ добавить ее только один раз где-нибудь в коде.

Ответ №2:

Попробуйте добавить android:exported = false pr android:exported = true в свой собственный файл манифеста и скомпилируйте код. Я надеюсь, что это решит вашу проблему. Так как добавление вручную в уведомлении работать не будет.

Комментарии:

1. Куда это добавить?

2. Поместите это под тегом MainActivity, где вы объявляете в файле манифеста

3. У меня MainActivity уже есть этот набор свойств. Я думаю, что вы не внимательно прочитали вопрос.

4. Если это не работает, попробуйте установить целевой SDK на 30. Скомпилируйте и перестройте проект.

5. Добавьте снимок экрана манифеста, чтобы понять, что есть в манифесте.