ホーリーのプログラミング日記

ホーリーのプログラミング日記

エキセントリック・スーパーアプリクリエイター / アプリ総DL数 約180万 / 全然分からない 俺は雰囲気でアプリを作ってる / iOS : apple.co/3m3HxSm / Android : bit.ly/3ma0liZ

UnityでAndroidがビルドエラーになったときはSDKを片っ端から尋問にかけてる話

 

UnityでAndroidをビルドするとき、たまにエラーが出ませんか?

iOSは問題なかったのに、Androidでエラーになるってあるあるですよね。

他の方はどうなのか分からないんですが、僕にとってはあるあるなんですよ。

 

こないだもこんなメッセージが出て、見事ビルドエラーになりました。

 

il2cpp.exe did not run properly

 

んで、これは僕の場合の話なんですけど、Androidでビルドが通らないときって、ほぼ100%SDKが悪さをしてるんですよね。

 

SDKって呼ぶのか分かりませんけど、こういうファイルあるじゃないですか。

 

f:id:gevvoihorry:20190426133802p:plain

 

主にアドモブで有名なこれですよ。SDKって名称が正しいのか分かりませんが、このまま続けましょう。

 

Androidが通らなかったとき、僕が真っ先に疑うのはこれです。

Consoleにエラーログが出ますけど、これは読んでもワケワカメなので、とりあえずSDKを尋問にかけるわけです。

 

有名どころで言えば、AdmobとSocialConnectorの競合がありますよね。

SocialConnectorのサイトにも書いてあるんですけど、support-core-utils-25.3.1.aarってファイルが原因で、ビルドが通らないことがあるんですよ。

 

もし、何かしらのエラーが起きた場合 support-core-utils-25.3.1.aar を削除してみてください。ライブラリの競合が解決し、ビルドが通るかもしれません。

 

AdmobとSocialConnectorと言えば、Unity3種の神器のうちの2つですから、このエラーはあるあるですよね(残る1つは知りません)

 

こんな風にSDK同士が悪さをするので、僕はいつもAndroidのビルドが通らないときは、SDKを順にチェックしています。

具体的には空のプロジェクトを立ち上げて、そこに今現在エラーで悩んでるアプリと同じSDKを入れてみるんですよ。

すると基本的には同じエラーが出るので、あとは1つずつ消しながら確かめています。

 

既存のプロジェクトで確かめてもいいんですけど、SDK消すテストは気持ち悪いから嫌なんですよね。

 

えー、まあそんなわけで、UnityでAndroidがビルドエラーになったときはSDKを片っ端から尋問にかけてるって話でした。

他の方々の事情は知らないですけど、僕はいつもこんな感じなんですよね。

 

P.S.

そだそだ。書き忘れてました。このときはUniTwitterが原因でビルドが通らなかったみたいです。

いつもはSocialConnector使ってるんですけど、Appleの審査でSocialConnector押した先の「画像を保存」ボタン押すとアプリが落ちるぞって言われて、UniTwitterに差し替えてたんですよ。

んで、ほとぼりが冷めたんで、再度SocialConnectorにしてたんですが、何かの原因でUniTwitterが引っかかるようになってたみたいです。

 

(画像を保存ボタンで落ちるのは相変わらずです。。)

 

原因となってるSDKを特定出来ても削除出来ない場合がほとんどだとは思いますが、このときは削除出来るシチュエーションだったので、削除させていただきました。UniTwitter作ってくださった方には申し訳ないんですけどねw

たいがいはSDKの中にあるAndroid関係の「何か」が原因になってると思います。

 

どこまでいってもザックリとした話なんですが、僕のビルドエラー対応はいつもザックリなんですよ。。