Unity2019 で Android の Tareget API を 30 に設定する方法


Unity2019 で Android の Tareget API を 30 に設定するための手順です。
中々エラーが出て解決までに時間がかかったので、
同じ轍をふまないように誰かの役に、未来の自分のために。

# 注意
色々書いてありますが、
実は [Unity 2019のAndroid Build SupportでもAPI Level 29でビルドできるようにする](https://blog.yucchiy.com/2020/09/android-29-or-later-for-unity-2019/) を参考に、
素直に Unity に従って Update したほうが楽という事実が・・・。
エラーが出てしまって解決したい方などは、以下参照ください。

# 前提
* Windows 10
* Unity 2019.4.22f1
* Android Build で Target API Level を 30 で設定

# 概要手順
1. Target API Level 30 に設定する
1. [SDK を入れる](https://qiita.com/drafts#%E6%89%8B%E9%A0%86)
1. [SDK Tools を 30.0.2 にダウングレードする](https://qiita.com/drafts#%E6%89%8B%E9%A0%86-2)
1. ビルド

# 数々のエラーたち
## Error : Required API level 30
Target API Level を 30 にしてビルドしようとするとエラーになる。

### エラー詳細
```
UnityException: Required API level 30.
```

### 原因と対応
* 原因：対応している SDK がないため
* 対応：対応しているSDKを入れる

### 手順
1. Android Studio をインストール（参考のサイトを参照）
2. SDK Manager を起動して SDK をインストール（参考のサイトを参照）
3. Unity を開いて、Edit -> Preferences -> External Tools の Android SDK Tools... のチェックを外し、2 でインストールした場所に設定する

### 参考
* [UnityでAPIレベル30に変更する方法【Android StudioからSDKをインストール】](https://youdoyou-motto.com/googleplay-howto-apichange) 

## Error : Gradle build failed.（パート1）
ビルドすると、Gradle build failed. See the Console for details が出てエラーになる。
![2021-12-17_21h07_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506075/239ef8e3-2673-1ee6-98f3-95864267f6ff.png)

### エラー詳細
3つほどエラーが出ていたが、実質意味ありそうなのは一つだけ。

```
CommandInvokationFailure: Gradle build failed. 

(略)

* What went wrong:
A problem occurred evaluating project ':launcher'.
> Failed to apply plugin [id 'com.android.internal.version-check']
   > Minimum supported Gradle version is 5.6.4. Current version is 5.1.1. If using the gradle wrapper, try editing the distributionUrl in C:\work\01_source\sb-idle-shooting\Temp\gradleOut\launcher\gradle\wrapper\gradle-wrapper.properties to gradle-5.6.4-all.zip

(略)
```

### 原因と対応
* 原因：設定しているパラメータに対し gradle のバージョンが古いため
* 対応：新しい gradle を入れる

### 手順
1. [gradle](https://gradle.org/install/) をインストール
2. Unity を開いて、Edit -> Preferences -> External Tools の Gradle Installed... のチェックを外し、1 でインストールした場所に設定する

## Error : Gradle build failed. （パート2）
ビルドすると、Gradle build failed. See the Console for details が出てエラーになる。
（見た目はError2と同じ。詳細を見ないと違いはわからない）
![2021-12-17_21h07_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506075/239ef8e3-2673-1ee6-98f3-95864267f6ff.png)

### エラー内容
4つほどエラーが出ていたが、結局は一つ。

```
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01

(略)

* What went wrong:
Could not determine the dependencies of task ':launcher:compileReleaseJavaWithJavac'.
> Installed Build Tools revision 32.0.0 is corrupted. Remove and install again using the SDK Manager.

(略)
```

他も同じことを言われていた。

```
CommandInvokationFailure: Gradle build failed. 

(略)

* What went wrong:
Could not determine the dependencies of task ':launcher:compileReleaseJavaWithJavac'.
> Installed Build Tools revision 32.0.0 is corrupted. Remove and install again using the SDK Manager.

(略)

```

### 原因と対応
原因：[こちら](https://issuetracker.unity3d.com/issues/android-android-build-fails-when-targeting-sdk-31-and-using-build-tools-31-dot-0-0)より Android Gradle Plugin と build-tools の互換性の問題だった。
![2021-12-17_21h27_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506075/fc93f94d-1a66-c406-2872-ede4b6a59a06.png)

対応：build-tools のバージョンが 30.0.2 以下のものを入れる。
ちなみ言われた通りに削除してインストールしても同じエラーになる。

### 手順
1. Android Studio を起動
1. Tools -> SDK Manager を選択
1. 左ペインで Apperace & Behavior / System Settings / Android SDK を選択し、右ペインで SDK Tools タブを選択
1. Show Package Details にチェックを入れる。（と古いバージョンを選択できるようになる）![2021-12-17_21h36_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506075/8c580865-75af-b152-0997-99e89610c5ef.png)
1. 新しいバージョンのチェックを外し、30.0.2 にチェックを入れて、Applyを押す。

## Error : android sdk build-tools component is not found
ビルドすると、以下ポップアップが表示されてビルドできない。

```
android sdk build-tools component is not found. make sure all tools are installed in the sdk manager
```

### 原因と対応方法
* 原因：謎
* 対応方法：Unity 再起動

### 参考
解決方法は[こちら](https://answers.unity.com/questions/1799189/android-sdk-is-missing-build-tools.html)から
![2021-12-17_17h44_29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506075/fe56f043-212e-2ed2-8284-cb25eaa55f37.png)