1. ホーム
  2. android

[解決済み] unexpected element <queries> found in <manifest>" エラーを修正する方法は?

2022-04-13 03:08:52

質問

突然ですが、私のAndroidプロジェクトでこのようなビルドエラーが発生しました。

unexpected element <queries> found in <manifest>

どうすれば直るの?

どのように解決するのですか?

Android Gradle Plugin は、特に新しいマニフェスト要素について知る必要があります。 マニフェストのマージ処理のためです。このプラグインは、次のような場合に混乱する傾向があります。 マニフェスト マージで認識できない要素に遭遇すると のようなビルドエラーが発生します。

この場合、Android 11では <queries> をマニフェスト要素として使用し、古いバージョンの Android Gradle Plugin はその要素について知りません。

マニフェストのマージで発生するということは、単純に依存関係をアップグレードするだけでは がこのエラーを引き起こす可能性があります。例えば、最新の のバージョン com.awesome:awesome-library を含んでおり、その中に <queries> 要素 を使用すると、ビルド時に前述のようなエラーでクラッシュする可能性があります。 他のコードに変更がない場合でも

Googleは、この問題に対処するため、Android Gradle Pluginのパッチ版を相次いでリリースしました。

  • 3.3.3
  • 3.4.3
  • 3.5.4
  • 3.6.4
  • 4.0.1

で既存のプラグインを使用している場合、そのプラグインを使用することができます。 3.3.* を通して 4.0.* シリーズにアップグレードしてください。 を関連するパッチバージョン(またはそれ以上)に変更すれば、もうそのようなことはありません。 はそのエラーに遭遇します(例. classpath 'com.android.tools.build:gradle:4.0.1' ).

Android Studio 4.1以降を使用していて、かつマッチングした Android Gradle Plugin (例) 4.1.* シリーズ) を使用すれば、そのままで大丈夫です。 を変更する必要があります。これらのプラグインのバージョンは、すでに <queries> .

参照 このAndroid Developers Blogの記事 をご覧ください。