أخطاء APK

Manifest merger failed

نص الخطأ

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

السبب

ملفات AndroidManifest للتطبيق وللمكتبات تضع السمة نفسها بقيم مختلفة. لا يستطيع Gradle دمجها.

الحل خطوة بخطوة

  1. اقرأ سطر «Suggestion» تحت الخطأ؛ Gradle نفسه يكتب العلاج.
  2. أضف xmlns:tools إلى وسم <manifest>.
  3. افرض قيمتك على السمة المتعارضة بـ tools:replace="android:label".
  4. لإلغاء إذن تطلبه مكتبة أخرى استخدم tools:node="remove".
  5. في Android 12 فما فوق يجب كتابة android:exported صراحة لكل <activity> فيها intent filter.

أوامر للمثال

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

كيف لا يتكرر

بعد تعديل المانيفست افتح عرض Merged Manifest؛ النتيجة النهائية تظهر هناك.

المؤلف والترخيص: Nibras Code