Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Menyelesaikan \'Ralat Penggabungan Manifes: Duplikat Atribut application@appComponentFactory\' dalam Android?

DDD
Lepaskan: 2024-10-31 17:11:02
asal
241 orang telah melayarinya

How to Resolve

Ralat Penggabungan Manifes: Duplikat Attribute application@appComponentFactory

Dalam projek Android yang disediakan, anda menghadapi ralat berikut:

ERROR: Manifest merger failed : Attribute
application@appComponentFactory
value=(androidx.core.app.CoreComponentFactory) from
[androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86   is also
present at [com.android.support:support-compat:28.0.0]
AndroidManifest.xml:22:18-91
value=(android.support.v4.app.CoreComponentFactory).  Suggestion: add
'tools:replace="android:appComponentFactory"' to  element
at AndroidManifest.xml:9:5-44:19 to override.
Salin selepas log masuk

Ralat ini menunjukkan bahawa anda mempunyai atribut application@appComponentFactory pendua yang ditakrifkan dalam manifes Android anda, menyebabkan kegagalan penggabungan manifes. Khususnya, dua perpustakaan berbeza (androidx.core dan com.android.support) kedua-duanya mengisytiharkan atribut ini.

Penyelesaian:

Untuk menyelesaikan isu ini, anda mempunyai dua pilihan:

1. Berhijrah Sepenuhnya ke AndroidX

Pindahkan keseluruhan projek anda ke perpustakaan AndroidX, menggantikan semua perpustakaan sokongan dengan rakan androidx mereka. Ini melibatkan membuat perubahan berikut:

  • Naik taraf pemalam Android Gradle kepada versi 3.2.1 atau lebih baru.
  • Tetapkan Gradle's compileSdkVersion kepada 28 atau lebih tinggi.
  • Kemas kini semua kebergantungan perpustakaan sokongan kepada versi AndroidX mereka.

Contoh:

<code class="gradle">implementation "androidx.appcompat:appcompat:1.1.0"
implementation "androidx.constraintlayout:constraintlayout:1.1.3"</code>
Salin selepas log masuk

2. Turunkan Ketergantungan Firebase

Sebagai alternatif, anda boleh menurunkan taraf kebergantungan Firebase anda kepada versi yang tidak memerlukan pustaka AndroidX. Walau bagaimanapun, ini bukan penyelesaian jangka panjang, kerana Firebase sedang giat berhijrah ke AndroidX.

Contoh:

<code class="gradle">implementation "com.google.firebase:firebase-messaging:17.3.4"</code>
Salin selepas log masuk

Nota Tambahan:

  • Jika anda menambah tools:replace="android:appComponentFactory" pada manifes seperti yang dicadangkan oleh mesej ralat, ia akan mengatasi nilai atribut sedia ada dengan nilai daripada pustaka pertama yang mentakrifkannya. Pendekatan ini mungkin berfungsi dalam jangka pendek, tetapi ia tidak disyorkan untuk jangka panjang.
  • Semak dua kali mana-mana perpustakaan atau kebergantungan pihak ketiga yang mungkin mengisytiharkan atribut android:appComponentFactory. Jika anda menemui apa-apa, pertimbangkan untuk mengemas kininya kepada versi AndroidX mereka atau mengecualikannya daripada projek.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \'Ralat Penggabungan Manifes: Duplikat Atribut application@appComponentFactory\' dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!