Android projesinde AndroidManifest.xml dosyasını bulma ve değiştirme
AndroidManifest.xml, uygulama modülünde yer alır: app/src/main/AndroidManifest.xml. Dosyayı Android Studio'da (Project → app → src → main), herhangi bir metin düzenleyicide açabilir veya apktool kullanarak APK içinden çıkarabilirsiniz. Değişiklikler dosyaya kaydedilir ve projenin yeniden derlenmesini gerektirir.
AndroidManifest.xml nerede bulunur
Android Studio projesindeki standart konumlar:
- app/src/main/AndroidManifest.xml — uygulamanın ana manifest dosyası.
- Özellik modülleri ve kütüphaneler için:
/src/main/AndroidManifest.xml. - Farklı derleme varyantları (build variants) için: src/debug/AndroidManifest.xml, src/release/AndroidManifest.xml — bu manifest dosyaları yalnızca ilgili derlemeleri etkiler ve ana manifest ile birleştirilir.
Örnek yapı: MyApp/ ├── app/ │ ├── src/ │ │ ├── main/ │ │ │ ├── java/… │ │ │ ├── res/… │ │ │ └── AndroidManifest.xml
Çok modüllü projelerde manifest dosyalarını her modülde arayın — çakışan etiketler kütüphanelerden kaynaklanabilir.
AndroidManifest.xml nasıl görüntülenir
Android Studio'da
- Project panelini açın (genellikle solda) → app → src → main → AndroidManifest.xml.
- Text (XML) ve Design (bazen görsel düzenleyici mevcuttur) arasında geçiş yapın.
- Hızlı dosya araması: Ctrl+Shift+N (Windows/Linux) veya Cmd+Shift+O (Mac).
Dosya sistemi / terminal üzerinden
- Projeyi dosya gezgininde veya terminalde açın:
- Unix: find . -name "AndroidManifest.xml"
- Windows (PowerShell): Get-ChildItem -Recurse -Filter AndroidManifest.xml
- Dosyayı herhangi bir düzenleyicide açın (VS Code, Notepad++, Vim).
Hazır APK'dan
- Çıkarma: apktool d yourapp.apk — elde edilen XML formatındaki manifest yourapp/AndroidManifest.xml klasöründe bulunur.
- Binary APK'dan görüntülemek için yapıyı almak amacıyla komut satırı araçları (aapt/aapt2) kullanılabilir.
AndroidManifest.xml nasıl değiştirilir — pratik adımlar
- Yedek alın veya değişiklikleri Git'te commit edin.
- Dosyayı Android Studio'da açın -> Text modunda düzenleyin.
- Değişiklikleri yapın (örnekler):
İzin ekleme:
<uses-permission android:name="android.permission.CAMERA" />
Ana Activity'yi ayarlama (Android 12+ için exported özelliğini mutlaka belirtin):
<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>
Minimum/hedef SDK sürümünü belirtme (genellikle Gradle üzerinden yapılır, ancak gerekirse manifestte de belirtilebilir):
<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="34" />
- Dosyayı kaydedin ve projeyi yeniden derleyin: Build > Rebuild Project. Gerekirse: Build > Clean Project.
- Varyanta özgü değişiklikler için src/debug/ içindeki manifest dosyalarını veya build.gradle içindeki manifestPlaceholders kullanın:
android {
defaultConfig {
manifestPlaceholders = [authPermission: "android.permission.CAMERA"]
}
}
Gelişmiş: birleştirme ve tools
- Çakışmalarda tools namespace'ini (xmlns:tools="http://schemas.android.com/tools") ve kütüphanelerden gelen manifestlerin birleştirilmesini yönetmek için tools:replace, tools:node="merge" gibi öznitelikleri kullanın.
Sonuçlarını anlamadan manifest kök etiketindeki package özniteliğini değiştirmeyin — bu, namespace'i belirler ve uygulamanın imzalanmasını/tanımlanmasını etkiler.
Yaygın hatalar
- Manifest merger failed — kütüphanelerden gelen etiket çakışması. Çözüm: tools:replace belirtin veya bağımlılıkları düzeltin.
- intent-filter içeren Activity'de android:exported eksikliği (Android 12+) — uygulama yüklenmez/çalışmaz.
- Değişiklikler uygulanmıyor — Build > Clean ve Invalidate Caches / Restart işlemlerini gerçekleştirin.
- Yanlış izinler — gereksiz permissions eklediniz; minimum seti ve runtime izinlerini kontrol edin.
SSS
- targetSdkVersion değerini nereye yazmak daha iyi olur — manifestte mi yoksa Gradle'da mı?
- Gradle'da (build.gradle) — bu standart ve önerilen yaklaşımdır.
- Debug derlemesi için sadece permission nasıl eklenir?
- src/debug/AndroidManifest.xml oluşturun ve
ekleyin — yalnızca debug derlemesine uygulanır.
- src/debug/AndroidManifest.xml oluşturun ve
- Derlenmiş APK'daki manifest düzenlenebilir mi?
- Evet, apktool aracılığıyla: apktool d app.apk, ardından düzenleme ve apktool b ile derleme; ancak bu, kaynak kodlar için değil, analiz/tersine mühendislik için uygundur.
Bu pratik adımlarla, çoğu projede AndroidManifest.xml dosyasını hızlıca bulabilir, görüntüleyebilir ve güvenli bir şekilde değiştirebilirsiniz.