【Unity】Unity2018 でビルドエラー「CommandInvokationFailure: Gradle build failed.」が出る 
2018/05/19 Sat [edit]
Unity2018 はどうも内部的なシステムの開発要件が上がったのか、インストして既存のプロジェクトをビルドしてみようとしたら、いくつかエラーが出たので備忘録。ちなみに 2017.4.2f2 までは何のエラーも出なかった状態からなので、開発環境によってはサードパーティの SDK など(Java SDK, Android SDK/NDK, Android Studio 等)のアップデートも必要になるかも知れない。結構大変なので、開発中であったり、Unity2018 の必要がないのなら、アップデートは先送りした方が良いかもね。またプラグインも使ってみようと思ったらビルド中にエラーが出たので、その辺りの対処方法も書いておこう。

■CommandInvokationFailure: Gradle build failed. ~ failed to find Build Tools revision 28.0.0
■CommandInvokationFailure: Gradle build failed. ~ Cannot read packageName
(※) Unity 2018.1.0f2 / Windows10(x64) / Galaxy S7 Edge (Android 7.0) で確認
■新規プロジェクトでいきなりエラー「ArgumentException: Value does not fall within the expected range.」が出る
インストして起ち上げたら、いきなり出たのがこれ(笑)。ググったらすぐに対処法が出てきたので正確にはメッセージは覚えてないが、要するにインストールされている Visual Studio 2017 のマイナーバージョンが合ってなかったらしい(?)。なので、最新版にアップデートすればエラーは出なくなる。
・Visual Studio Tools for Unity (最新版をインストール)
・Error with Unity and Visual Studio Bridge (VS project not updating when new scripts added)
■「CommandInvokationFailure: Gradle build failed.」以降のエラーメッセージに「failed to find Build Tools revision 28.0.0」のようなバージョン番号が出ている。

これはどうやらインストしてある Android Studio(ないし SDK)にある Build Tools のバージョンが合ってない(?) みたいなのだが、私の場合「28.0.0rc2」が入っていたのにダメだった(SDK Manager で "28.0.0" を探したが、なぜか "~rc1", "~rc2" しか無い(笑))。仕方がないので試しに "28.0.0rc2" を削除して「27.0.3」を残したらエラーが出なくなった(Android Studio で「Tools>SDK Manager」を開き、「SDK Tools」タブでダイアログの下の方にある「Show Package Details」にチェックを入れると細かいバージョンを追加・削除できる)。ただこれはかなりいい加減な応急処置なので(笑)、バージョンが上がって安定版が出たら設定し直したほうが良いかも知れない。
■「CommandInvokationFailure: Gradle build failed.」以降のエラーメッセージに「Cannot read packageName from~(パス)\AndroidManifest.xml」と出る。
・Unity 2018.1.7f1 リリースノート
・[ANDROID] $APPLICATIONID TAG IN A MANIFEST CAUSES GRADLE BUILD TO FAIL

これはプラグインを使ってみようと思ったら出た。普通にビルドする分には関係ないかも知れない。「AndroidManifest.xml」をオーバーライドしている場合、Unity2018 の仕様(バグ?)なのか、「Build Settings...」で「Build System」を「Gradle」にしていると、でパッケージ名が追加されないようだ(Unity2017.4.2f2 までは自動で追加される)。なので独自に「AndroidManifest.xml」を設定している場合、「manifest」タグに「package」属性を手動で追加しておく必要がある。「package」にはプロジェクトのパッケージ名「Edit>Project Settings>Player>Other Settings>Identification>Package Name」と同じものを書いておく。または「Build System」を「Internal」にするとエラーは出なくなる(ビルドできるようになる)。
● "AndroidManifest.xml" に追加する部分(※"package" はプロジェクトのパッケージ名にする)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.productName">
・・・(略)・・・
</manifest>
●PlayerSettings

※パッケージ名(com.company.productNam)は必ずアプリ固有の名前(ID)として設定する必要アリ。
当プラグインでもエラーが出たときは、上記の方法でビルドできるようになる(※スマホ [Android7.0] でも動作確認済み)。
(関連記事)
【Unity】AssetStore版 FantomPlugin のセットアップ
【Unity】【C#】モバイルビルド中の警告:Game scripts or other custom code contains OnMouse_ event handlers.~ を消す
【Unity】アイコン画像のフォーマット警告:Compressed texture XXX is used as icon. This might compromise visual quality of~ を消す
【Unity】5.6 の Canvas の警告:Shader channels Normal and Tangent are most often used with lighting~ を消す
【Unity】InitializeUnityExtensions: Must have a valid path for the plugin [XX] (XX:番号) というエラーの修正方法
- 関連記事
category: Unity
thread: ゲーム開発
janre: コンピュータ
tag: Unityトラブルシューティング Unityバグ Unityライブラリ Unityプラグイン FantomPluginトラックバック
トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/296-bedc8e68
この記事にトラックバックする(FC2ブログユーザー)
| h o m e |