APK xətaları

Manifest merger failed

Xəta mətni

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

Səbəb

Layihənin və kitabxanaların AndroidManifest fayllarında eyni atribut fərqli dəyərlə yazılıb. Gradle onları birləşdirə bilmir.

Addım-addım həll

  1. Xətanın altındakı «Suggestion» sətrini oxu. Gradle çarəni özü yazır.
  2. <manifest> etiketinə xmlns:tools əlavə et.
  3. Toqquşan atributu tools:replace="android:label" ilə öz dəyərinə məcbur et.
  4. Başqa kitabxananın icazəsini ləğv etmək üçün tools:node="remove" işlət.
  5. Android 12 və yuxarıda android:exported hər <activity> üçün açıq yazılmalıdır.

Nümunə əmrlər

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

Təkrarlanmasın deyə

Manifestə dəyişiklikdən sonra Merged Manifest görünüşünə bax: son nəticə orada göstərilir.

Müəllif və lisenziya: Nibras Code