ホームページ  >  記事  >  Java  >  Android で「マニフェスト マージャー エラー: 属性の重複 application@appComponentFactory」を解決する方法?

Android で「マニフェスト マージャー エラー: 属性の重複 application@appComponentFactory」を解決する方法?

DDD
DDDオリジナル
2024-10-31 17:11:02333ブラウズ

How to Resolve

マニフェスト マージャー エラー: 属性の重複 application@appComponentFactory

提供された Android プロジェクトで、次のエラーが発生します:

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.

このエラーは、Android マニフェストに重複した application@appComponentFactory 属性が定義されており、マニフェストのマージが失敗することを示しています。具体的には、2 つの異なるライブラリ (androidx.core と com.android.support) が両方ともこの属性を宣言しています。

解決策:

この問題を解決するには、次の 2 つの方法があります。オプション:

1. AndroidX への完全移行

プロジェクト全体を AndroidX ライブラリに移行し、すべてのサポート ライブラリを androidx の対応するライブラリに置き換えます。これには、次の変更が含まれます:

  • Android Gradle プラグインをバージョン 3.2.1 以降にアップグレードします。
  • Gradle のcompileSdkVersion を 28 以降に設定します。
  • 更新すべては、AndroidX バージョンへのライブラリの依存関係をサポートしています。

例:

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

2. Firebase の依存関係をダウングレードします

または、Firebase の依存関係を AndroidX ライブラリを必要としないバージョンにダウングレードすることもできます。ただし、Firebase は AndroidX に積極的に移行しているため、これは長期的な解決策ではありません。

例:

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

追加メモ:

  • エラー メッセージで示唆されているように tools:replace="android:appComponentFactory" をマニフェストに追加すると、既存の属性値がそれを定義する最初のライブラリの値でオーバーライドされます。このアプローチは短期的には機能する可能性がありますが、長期的には推奨されません。
  • android:appComponentFactory 属性を宣言している可能性のあるサードパーティのライブラリまたは依存関係を再確認してください。見つかった場合は、AndroidX バージョンに更新するか、プロジェクトから除外することを検討してください。

以上がAndroid で「マニフェスト マージャー エラー: 属性の重複 application@appComponentFactory」を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。