Как найти и изменить 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 — практические шаги
- Сделайте backup или зафиксируйте изменения в Git.
- Откройте файл в Android Studio -> редактируйте в Text-режиме.
- Вносите изменения (примеры):
Добавить разрешение:
<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" />
- Сохраните файл и пересоберите проект: Build > Rebuild Project. При необходимости: Build > Clean Project.
- Для вариативных изменений используйте манифесты в 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.
- Создайте src/debug/AndroidManifest.xml и добавьте
- Можно ли редактировать манифест в скомпилированном APK?
- Да, через apktool: apktool d app.apk, затем правка и сборка apktool b, но это подходит для анализа/обратной сборки, не для исходников.
С этими практическими шагами вы сможете быстро найти, посмотреть и безопасно изменить AndroidManifest.xml в большинстве проектов.