Как найти и изменить AndroidManifest.xml в Android-проекте

AndroidManifest.xml находится в модуле приложения: app/src/main/AndroidManifest.xml. Открыть его можно в Android Studio (Project → app → src → main), в любом текстовом редакторе или извлечь из APK через apktool. Изменения сохраняются в файле и требуют пересборки проекта.

Где находится AndroidManifest.xml

Стандартное расположение в проекте Android Studio:

  • app/src/main/AndroidManifest.xml — основной манифест приложения.
  • Для фич-модулей и библиотек: /src/main/AndroidManifest.xml.
  • Для разных вариантов сборки (build variants): src/debug/AndroidManifest.xml, src/release/AndroidManifest.xml — эти манифесты влияют только на соответствующие сборки и сливаются с основным.

Пример структуры: MyApp/ ├── app/ │ ├── src/ │ │ ├── main/ │ │ │ ├── java/… │ │ │ ├── res/… │ │ │ └── AndroidManifest.xml

В мультимодульных проектах ищите манифесты в каждом модуле — конфликтные теги могут происходить из библиотек.

Как посмотреть AndroidManifest.xml

В Android Studio

  • Откройте панель Project (обычно слева) → app → src → main → AndroidManifest.xml.
  • Переключайтесь между Text (XML) и Design (иногда доступен визуальный редактор).
  • Быстрый поиск файла: Ctrl+Shift+N (Windows/Linux) или Cmd+Shift+O (Mac).

Через файловую систему / терминал

  • Откройте папку проекта в проводнике или терминале:
    • Unix: find . -name "AndroidManifest.xml"
    • Windows (PowerShell): Get-ChildItem -Recurse -Filter AndroidManifest.xml
  • Откройте файл в любом редакторе (VS Code, Notepad++, Vim).

Из готового APK

  • Распаковка: apktool d yourapp.apk — полученный манифест в формате XML в папке yourapp/AndroidManifest.xml.
  • Для просмотра из бинарного APK можно использовать инструменты командной строки (aapt/aapt2) для получения структуры.

Как изменить AndroidManifest.xml — практические шаги

  1. Сделайте backup или зафиксируйте изменения в Git.
  2. Откройте файл в Android Studio -> редактируйте в Text-режиме.
  3. Вносите изменения (примеры):

Добавить разрешение:

<uses-permission android:name="android.permission.CAMERA" />

Задать главную Activity (обязательно указать exported для Android 12+):

<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>

Указать минимальную/целевую версию SDK (обычно через Gradle, но можно в манифесте при необходимости):

<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="34" />
  1. Сохраните файл и пересоберите проект: Build > Rebuild Project. При необходимости: Build > Clean Project.
  2. Для вариативных изменений используйте манифесты в src/debug/ или manifestPlaceholders в build.gradle:
android {
  defaultConfig {
    manifestPlaceholders = [authPermission: "android.permission.CAMERA"]
  }
}

Продвинутые: merge и tools

  • При конфликтах используйте namespace tools (xmlns:tools="http://schemas.android.com/tools") и атрибуты вроде tools:replace, tools:node="merge" для управления слиянием манифестов из библиотек.

Не изменяйте атрибут package в корневом теге manifest без понимания последствий — он определяет namespace и влияет на подпись/идентификацию приложения.

Частые ошибки

  • Manifest merger failed — конфликт тегов из библиотек. Решение: указать tools:replace или скорректировать зависимости.
  • Activity с intent-filter без android:exported (с Android 12+) — приложение не установится/не запустится.
  • Изменения не применяются — выполните Build > Clean и Invalidate Caches / Restart.
  • Неправильные разрешения — добавили избыточные permissions; проверяйте минимальный набор и runtime permissions.

FAQ

  • Где прописывать targetSdkVersion лучше — в манифесте или в Gradle?
    • В Gradle (build.gradle) — это стандарт и рекомендуемый подход.
  • Как добавить permission только для debug-сборки?
    • Создайте src/debug/AndroidManifest.xml и добавьте — он будет применяться только к debug.
  • Можно ли редактировать манифест в скомпилированном APK?
    • Да, через apktool: apktool d app.apk, затем правка и сборка apktool b, но это подходит для анализа/обратной сборки, не для исходников.

С этими практическими шагами вы сможете быстро найти, посмотреть и безопасно изменить AndroidManifest.xml в большинстве проектов.