【Android 】”unexpected element found in “エラーの対処

Androidアプリ開発中に遭遇

▼ ビルド中にこういうエラー

初めて見たエラーです。

直すのに少しだけ苦戦したので、
このエラーの原因とか直し方を記録しときます。

AdMobを最新にアップデートしたときに発生

キッカケはAdMobライブラリを更新したとき

▼ build.gradleでこういう記述をしていた

今までは 18.3.0 を使っていたのですが、Android Studio が「最新版の19.8.0を使ったほうがいいよ」と提案してきたからアプデすることにしました。

▼ そこで最新版を入れようとしたが・・

▼ 冒頭の謎エラーに遭遇してしまった

マニフェストファイル内に <queries> というタグが見つからないというエラーが出てます。アプリではなくPlay-Services-adsのManifest.xml で起きたみたいです。

そこで試行錯誤して直すことに

このエラーを直すまでに行ったこと

次の2つを試したらエラーが消えました。

Gradleそのもののバージョンを上げる

まずはGradleのバージョンを上げました。

バージョンはbuild.gradleに定義されてます。

▼ プロジェクトレベルのbuild.gradleの次の部分

これが 3.5.3 になっていますが、現在は4.0.2が使用可能

▼ このように修正

修正後は [Sync Now]するのも忘れずに

2.Gradleの最小バージョンを引き上げる

そしたら別のエラーが出てしまいました。

どうやらGradleの最低バージョンを6.1.1にしろと言っているようです。ここでのバージョンはbuild.gradleで定義されたバージョンではなく配布バージョンのことです。

そこでgradle.wrapper.propertiesを編集しました。

▼ 修正する前の内容

▼ このように修正した

そして[Sync Now]を押すとエラーが解消!

ビルドも正常に行えるようになりました。

あとAdMobも最新版にアップデート完了

unexpected element <queries>... の対処法まとめ

ということで原因と対処法をまとめます。

  • 原因
    一部のライブラリをアップデートしようとしたとき、Gradleが最新バージョンが必要なことがある。それが未対応の場合、このエラーが出るのかもしれない
  • 対処
    まずプロジェクトレベルのbuild.gradleでGradleバージョンを最新にアップデート。そのあとgradle.wrapper.propertiesにて最初バージョンも引き上げた

大抵はこれで解決するはずです。

もし間違いなどあればご指摘ください。

ではまた バイバイ(^^)/~~~