Unity AndroidのBuild時になるエラーについての対処

Unityで通常の実行ができるのに、AndroidでBuildができなかった時、確認すべきこととBuildするために行ったことを残しておく。

## まず確認すること
コンパイルする対象にEditor用のコードが含まれていないかを確認する。using UnityEditorを使用していたら注意。もしあればUnityのEditorフォルダに移動するか、#if UNITY_EDITOR のオプションを追加ってBuild時に影響がでないようにする。

## アンドロイド関係のエラー
筆者自身もどうしてうまくいくようになるのか深く理解していない部分もあるので実施しするときには自己責任で。

まずはなにはともあれExternal Dependency Managerを使う。Androidに必要なものを調整してくれるやつ
DLサイト

https://github.com/googlesamples/unity-jar-resolver

external-dependency-manager-latest.unitypackageをGitHubからDLする。
Unity上ですでにDLしてあればまずは消す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2294598/e2a05cfe-5850-2148-2303-a5801cd52ee4.png)
PluginsのAndroidも消す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2294598/a6c39ab6-9aae-d956-1ed4-3fe122f6259e.png)

GitからDLしたexternal-dependency-manager-latest.unitypackageをクリックするとinport画面が表示されるのでinportする。

ツールバーのAssetからForceResolveする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2294598/503e48f1-b0fc-9ae6-5759-19fb944d93db.png)

とりあえずこれでBuildしてみる。

出来なかった場合
Plugins>Androidフォルダを消す
Settingを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2294598/4c2b5b1a-b7b5-2433-e313-cce4853717a9.png)

Reset to Defaults
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2294598/cdba9ebc-2922-1ad7-233f-d645cb244d4e.png)

その後もう一度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)
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2294598/5424b723-5064-e1b1-dac6-42a925ede202.png)
mainTemplateを開き、なければProjectSettingからPlayer>publishSetting>CusTomMainGradleTemplateにチェック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2294598/36700019-b246-207e-beaf-730abf1cbdfd.png)

```
    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の設定関係が上手くできていなかったことが原因だと思っている。
この情報が役に立つかわからないが、もし同じように悩んでいる人がいたら試してほしい。

## 参考サイト

https://qiita.com/nekojoker/items/231273c8422a88485b27

https://elly-app-creator.blog.jp/archives/23676054.html

https://note.com/yonemori550/n/n0bc776b9a435

https://qiita.com/kaedeee/items/e26bc972d76caa81de44

https://qiita.com/warapuri/items/6ce6930174916c11a7b5