なえ箱

メモを植えます

AndroidManifest.xml: annotated with 'tools:node="removeAll"' cannot have other attributes : xmlns:toolsの修正方法【Unity】

この記事をシェアする

2021.3から2022.3、2023.2にプロジェクトをアップデートしてみた所このようなエラーが。

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
D:\Projects\Proj\branches\2022.3\Library\Bee\Android\Prj\IL2CPP\Gradle\unityLibrary\src\main\AndroidManifest.xml:25:5-87 Error:
    Element property at AndroidManifest.xml:25:5-87 annotated with 'tools:node="removeAll"' cannot have other attributes : xmlns:tools
D:\Projects\Proj\branches\2022.3\Library\Bee\Android\Prj\IL2CPP\Gradle\unityLibrary\src\main\AndroidManifest.xml Error:
    Validation failed, exiting

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':unityLibrary:processReleaseManifest'.
> A failure occurred while executing com.android.build.gradle.tasks.ProcessLibraryManifest$ProcessLibWorkAction
   > Manifest merger failed with multiple errors, see logs

見てる感じremoveAllが付けられてるElement propertyで何か問題が起きていそう。

色々調べた結果、現象解決まで出来たので方法をメモ。

removeAll

AndroidManifest.xmlの状態

Plugins/Android/AndroidManifest.xmlを見てみると、"removeAll"が書かれたpropertyが追加されている。

確かにremoveAllが追加されてる

この"removeAll"が書かれたpropertyを無効化すれば良いっぽい。

解決方法/原因

removeAllのある行をコメントアウトすることでビルドが通るようになる。

removeAllのある行をコメントアウトする

このfirebaseのissuesにもあるけど、Gradleバージョン7辺りから <property> タグのサポートが追加されてるが、その周りに関する問題みたい。

github.com

2021.3はGradle 6.1.1だし、その古いGradle バージョンが壊れないようにremoveAllを追加してくるみたいだけど、

2022.2以降になるとGradleバージョンが7.2になるので、そのproperty周りの問題が出てくるようになるのかも。

とりあえずこれでビルドが通るようになったので一安心。