私以外にはどうでもいいことですが
Twitterでフォローしているアカウントを整理しました。
ゲーム製作者を中心に300近くフォローしていたんですが、TLで追えなくなって来たのでガッツリ減らしました。
個人的にログを溜め込んでいるのって消化しないといけないTODOを溜め込んでいるような気がして落ち着かないので、小まめにTLをチェックして消化しているのですが、いい加減疲れました。フォローされていた方、ごめんなさい。悪意はありません。ただ疲れただけです。
4桁以上フォローしている人ってどうしているんだろう?ちょっと時間を空けるとわんさかログが溜まっているような気がする。
そんなことをいいながらも
ログを溜め込むのは嫌い、とは言いながらゲーム制作の方は作業を溜め込んでいて、CutieCircuitのアップデート版もGW明けにリース予定→5月末にリリース予定→6月上旬にリリース予定・・・と延ばし延ばしになっている現状ですが、え、ちょっと待って、これには訳があるんだけど(よくある女子ツイート風に)
先週のうちには作業を終えていて、後はビルドするのみとなっていたのですが、このビルドが中々通らない、四苦八苦しながら約5日を費やし、昨日ようやくビルドができるようになったので今回はそのお話
Unity2018でビルドエラー
UnityのプロダクトをAndroid端末で動かそうとするとビルド作業が必要です。
このビルドを行うための環境づくりも面倒なのですが、それはそれとして、もっと面倒なのがビルドエラーの対応
エラーメッセージは英語なのでGoogle先生に翻訳してもらいながら作業になるし、対処方法を検索してもドンピシャの解決法が見つかるとも限らない。しかも英語のページが多いし。
まぁ、代表的な解決方法は日本語のブログでも幾つか記事に纏められていて、大抵の方はそちらを参照すれば解決するかと思います。
- Andoridビルドエラーについてのまとめ
上のリンクでもあるように代表的な対処方法とすれば
- SDKのファイルパスを確認する: UnityのメニューからPreferences→External Toolsを選択してAndroidのSDKに表示されているパスが正しいか確認する。
- toolsフォルダを更新する:/Users/ユーザ名/Library/Android/sdkフォルダの中にあるのtoolsフォルダをr25.2.5-windows.zipをダウンロードして置換する。
私の場合はそれを試しても全くダメ。まさにお手上げ状態でした。
ビルドエラー解消までの道のり
表示されるビルドエラーは以下の内容
Failed to re-package resources
CommandInvokationFailure: Failed to re-package resources. See the Console for details. C:\Users\***\AppData\Local\Android\sdk\build-tools\27.0.1\aapt.exe package -auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S “res” -I “C:/Users/***/AppData/Local/Android/sdk\platforms\android-27\android.jar” -F bin/resources.ap_
以下、数十行のエラーログ
うーん、分からん。。。とりあえず、build-tools云々といっているからbuild-toolsのバージョンを下げてみることに。
Android Studio を立ち上げて、SDK Managerからbuild-toolsに26.0.3を選択し、逆に27.0.1のチェックはずしてOKを押す。
更新が完了するとbuild-tools配下に26.0.3が作られて27.0.1が消えている。よし、これでどうだ!!
Failed to re-package resources
CommandInvokationFailure: Failed to re-package resources.
以下、略
うーん。。。だめだったか。。。ならば、もう一つバージョンを下げてみよう。今度は25.0.3をインストール。さあ、これで!!
CommandInvokationFailure: Unable to merge android manifests. See the Console for more details.
stderr[
]
mp\StagingArea\AndroidManifest-main.xml:18, C:\Unity\***\Temp\StagingArea\android-libraries\android.arch.lifecycle.runtime-1.0.0\AndroidManifest.xml:3] Main manifest has <uses-sdk android:targetSdkVersion='25'> but library uses targetSdkVersion='26'
おお、エラーが変わった!これは前進しているということか!(←大きな勘違い)
AndroidManifest.xmlのバージョン指定を書き換えればいいのか!(←無駄です)
やっとこれで解決する!!(←しません)
Failed to re-package resources
CommandInvokationFailure: Failed to re-package resources.
以下、略
ヽ(  ̄д ̄;)ノ オテアゲー
ここから迷走が始まり。
- ビルドシステムをGradleに変更する(←状況変わらず)
- SDKのbuild-toolsを最新(28.0.1)に更新する(←状況変わらず)
- ならばとUnity2017をUnity2018へバージョンアップさせる。(←丸一日掛かった)
- UnityIAPを入れなおす。(←なんとなく)
- VisualStudioを2017へバージョンアップさせる(←そうしないとUnity2018では怒られる)
- FIFA18のワールドカップモードで日本を準優勝させる(←現実逃避)
何をやっても状況は変わらず袋小路から抜け出せない。このままではアプリはリリースできない→せっかくロゴを依頼して作ってもらったのに水の泡になる→ロゴ製作者の方に顔向けできない→ゲーム開発者として終了、とまで追い詰められたのですが、ふと思い立って、別の作りかけのアプリをビルドしてみることに。
これまではずっとCutieCircuitだけをビルドしていたので、他のアプリではどうなるか試してみようと思ったんです。そうしたら。。。
ビルドが通った!APKが作成された!
ということは、ビルドが通らない原因はAndroidの環境ではなくCutieCircuitプロダクト固有の原因、ということになります。
なので、もう一度エラーメッセージを見直してみると、先ほどから「以下、略」で省略していた箇所にヒントがありました。
stderr[
D:\work\unity\Cutie Circuit\Cutie Circuit\Temp\StagingArea\android-libraries\com.android.support.support-compat-26.1.0\res\layout\notification_action.xml:17: note: removing attribute http://schemas.android.com/apk/res/android:paddingStart from <LinearLayout>
D:\work\unity\Cutie Circuit\Cutie Circuit\Temp\StagingArea\android-libraries\com.android.support.support-compat-26.1.0\res\layout\notification_action.xml:32: note: removing attribute http://schemas.android.com/apk/res/android:paddingStart from <TextView>…
D:\work\unity\Cutie Circuit\Cutie Circuit\Temp\StagingArea\android-libraries\com.android.support.support-compat-26.1.0\res\layout-v16\notification_template_custom_big.xml:32: note: removing attribute http://schemas.android.com/apk/res/android:layout_marginStart from <LinearLayout>
D:\work\unity\Cutie Circuit\Cutie Circuit\Temp\StagingArea\android-libraries\com.android.support.suppor<message truncated
Tempに展開されたcom.android.support.supportについてのエラーとなっていますが、このフォルダ自体はAssets/Pulgins/Andorid配下にあるcom.android.support.support-***.aar
ファイルが解凍されて展開されているみたい。
なので、Assets/Pulgins/Andorid配下の中を確認すると
不自然に日付が古いaarファイルが幾つかあります。
さらにそれらの中を確認するとcom.android.support.support-***.aarのファイルとダブっているように見える。ならばと、この古いaarファイルを削除してみると。。。
ビルドが通った!APKが作成された!
___ ム i
「 ヒ_i〉 ゝ 〈
ト ノ iニ(()
i { ____ | ヽ
i i /__, , ‐-\ i }
| i /(●) ( ● )\ {、 λ
ト-┤. / (__人__) \ ,ノ  ̄ ,!
i ゝ、_ | ´ ̄` | ,. ‘´ハ ,!
. ヽ、 `` 、,__\ /” \ ヽ/
\ノ ノ ハ ̄r/:::r―–―/::7 ノ /
ヽ. ヽ::〈; . ‘::. :’ |::/ / ,. ”
`ー 、 \ヽ::. ;:::|/ r’”
/ ̄二二二二二二二二二二二二二二二二ヽ
| 答 | コ ロ ン ビ ア │|
\_二二二二二二二二二二二二二二二二ノ
この対応で正しいのか?
Pulgins配下のaarファイルは私が意図的にインストールしたものではないため、おそらく何かのアセットをインストールした際に入ったものだと思います。なので、このファイル削除が正しい対応なのかはわかりません。
ただ、現状ではアプリの動作に支障はないみたいなので、これでAndroid端末での動作確認を進めようと思います。
まぁ、とりあえずビルドが通ったので後はリリースするだけだと思うでしょ?ただ、現状ではAPKのサイズが190Mbyteあるんです。
うわっ・・・私のアプリサイズ、大きすぎ(よく見かける広告風に)
100Mbyteの壁再びかぁ・・・・