CommandInvokationFailure: Gradle build failed. の解決方法


前記事の後、別PJを作成しAndroid用にBuildしようとしたらエラーが出てしまい…
解決までえらく時間がかかったのでメモ

結論

Unity2019以前の場合、Gradleのバージョンを5.6.4 or laterに設定すればいい
(Unity2020.1以降だったら今回のエラーは出なかったっぽい…?)

詳細

環境

Unity2019.4
ARFoundation2.1.10
ARCore XR Plugin2.1.12

行ったこと

前記事の①
・Scriptの追加(タップしたらcubeが生成されるようなやつ)
・Build SettingでBuildボタン押下

出力したエラー

CommandInvokationFailure: Gradle build failed. 
(somepath)/Unity/Hub/Editor/2019.4.12f1/Editor/Data/PlaybackEngines/AndroidPlayer\OpenJDK\bin\java.exe -classpath "(somepath)\Unity\Hub\Editor\2019.4.12f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-5.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"

(略)
[:arcore_client:] (somepath)\AndroidManifest.xml:30:9-54 Error:
    Missing 'package' key attribute on element package at [:arcore_client:] AndroidManifest.xml:30:9-54
[:arcore_client:] (somepath)\AndroidManifest.xml Error:
    Validation failed, exiting

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':launcher:processReleaseManifest'.
> Manifest merger failed with multiple errors, see logs

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 10s
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
(略)

解決方法

以下のページの通りに設定する
https://developers.google.com/ar/develop/unity/android-11-build
※その後、BuildもBuidAndRunもできました。

解決方法の詳細
①Preferencesの設定
・以下のサイトからGradle 5.6.4以降をダウンロード
 https://gradle.org/releases/
 ※自分は5.6.4のcompleteをダウンロードして、解凍したフォルダを(somepath)/2019.4.12f1/Editor/Data/PlaybackEngines/AndroidPlayer/Tools/gradle配下に置きました

・Edit > Preferences > External Tools > Android > Gradle
 Gradle installed with Unity(recommended)のチェックを外す
 その下の行にダウンロードしたGradle5.6.4以降のファイルを指定する

②Project Settingsの設定
 Edit > Project Settings > Player > Android tab > Publishing Settings > Build
 以下の赤枠にチェックする

・緑枠のファイルを編集する
以下の一行がコメントアウトされていなかったら、コメントアウトする

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN

 ※自分の場合はコメントアウトされていました

 文頭に以下をコピペ

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        // Must be Android Gradle Plugin 3.6.0 or later. For a list of
        // compatible Gradle versions refer to:
        // https://developer.android.com/studio/releases/gradle-plugin
        classpath 'com.android.tools.build:gradle:3.6.0'
    }
}

allprojects {
   repositories {
      google()
      jcenter()
      flatDir {
        dirs 'libs'
      }
   }
}

※自分の場合は3.6.0にしました