Unityで通常の実行ができるのに、AndroidでBuildができなかった時、確認すべきこととBuildするために行ったことを残しておく。
まず確認すること
コンパイルする対象にEditor用のコードが含まれていないかを確認する。using UnityEditorを使用していたら注意。もしあればUnityのEditorフォルダに移動するか、#if UNITY_EDITOR のオプションを追加ってBuild時に影響がでないようにする。
アンドロイド関係のエラー
筆者自身もどうしてうまくいくようになるのか深く理解していない部分もあるので実施しするときには自己責任で。
まずはなにはともあれExternal Dependency Managerを使う。Androidに必要なものを調整してくれるやつ
DLサイト
external-dependency-manager-latest.unitypackageをGitHubからDLする。
Unity上ですでにDLしてあればまずは消す
PluginsのAndroidも消す
GitからDLしたexternal-dependency-manager-latest.unitypackageをクリックするとinport画面が表示されるのでinportする。
とりあえずこれでBuildしてみる。
出来なかった場合
Plugins>Androidフォルダを消す
Settingを押す
その後もう一度ForceResolve
Buildできるか確認する。
筆者の場合次はクラスが複数定義されているというエラーがでた。
launcher:checkDebugDuplicateClasses FAILED
* What went wrong:
Execution failed for task ':launcher:checkDebugDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
> Duplicate class com.google.android.gms.common.api.zzb found in modules jetified-play-services-base-9.8.0-runtime (com.google.android.gms:play-services-base:9.8.0) and jetified-play-services-basement-17.2.1-runtime (com.google.android.gms:play-services-basement:17.2.1)
mainTemplateを開き、なければProjectSettingからPlayer>publishSetting>CusTomMainGradleTemplateにチェック
implementation 'com.google.android.gms:play-services-base:17.2.1'
implementation 'com.google.android.gms:play-services-basement:17.2.1'
を追加
追加後のソース
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
// Android Resolver Dependencies Start
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0' // Assets/IronSource/Editor/IronSourceSDKDependencies.xml:17
implementation 'com.google.android.gms:play-services-base:17.2.1'
implementation 'com.google.android.gms:play-services-basement:17.2.1'
implementation 'com.google.android.gms:play-services-games:9.8.0' // Assets/Editor/Dependencies.xml:41
implementation 'com.ironsource.sdk:mediationsdk:7.2.5' // Assets/IronSource/Editor/IronSourceSDKDependencies.xml:9
// Android Resolver Dependencies End
**DEPS**}
これでもう一度Build。これでBuildできるようになった。
原因
急にPCの調子が悪くなり、OSのクリーンインストールしたせいでAndrodiの設定関係が上手くできていなかったことが原因だと思っている。
この情報が役に立つかわからないが、もし同じように悩んでいる人がいたら試してほしい。
参考サイト