APK hataları

Manifest merger failed

Hata metni

Manifest merger failed with multiple errors, see logs
Attribute application@label value=(App) from AndroidManifest.xml is also present at [lib] value=(Lib).
Suggestion: add 'tools:replace="android:label"' to <application> element

Neden

Uygulamanın ve kütüphanelerin AndroidManifest dosyalarında aynı öznitelik farklı değerle yazılmış. Gradle birleştiremez.

Adım adım çözüm

  1. Hatanın altındaki «Suggestion» satırını oku. Çareyi Gradle kendisi yazar.
  2. <manifest> etiketine xmlns:tools ekle.
  3. Çakışan özniteliği tools:replace="android:label" ile kendi değerine zorla.
  4. Başka kütüphanenin istediği izni iptal etmek için tools:node="remove" kullan.
  5. Android 12 ve üstünde intent filtresi olan her <activity> için android:exported açıkça yazılmalı.

Örnek komutlar

<manifest xmlns:tools="http://schemas.android.com/tools" ...>
  <application
      android:label="@string/app_name"
      tools:replace="android:label">
  </application>
</manifest>
./gradlew :app:processDebugMainManifest --stacktrace

Tekrarlanmasın diye

Manifesti değiştirdikten sonra Merged Manifest görünümüne bak; son sonuç orada.

Yazar ve lisans: Nibras Code