【Unity】Cloud Diagnostics と NCMBが競合してAndroidでビルドエラー Program type already present: com.nifty.cloud.mb.ncmbgcmplugin.GCMInit$1

# Cloud Diagnosticsとは

[cloud-diagnostics](https://unity3d.com/jp/unity/features/cloud-diagnostics)
[Setting up Cloud Diagnostics](https://unitytech.github.io/clouddiagnostics/userreporting/UnityCloudDiagnosticsSettingUp.html)

# エラー

```
CommandInvokationFailure: Gradle build failed. 
/Applications/Unity/Hub/Editor/2018.4.0f1/PlaybackEngines/AndroidPlayer/Tools/OpenJDK/MacOS/bin/java -classpath "/Applications/Unity/Hub/Editor/2018.4.0f1/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-4.6.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"
stderr[
D8: Program type already present: com.nifty.cloud.mb.ncmbgcmplugin.GCMInit$1
FAILURE: Build failed with an exception.

（以下割愛）
```

Cloud Diagnosticsをインストールしてビルドしてみるとエラー。
非常に長いエラーメッセージが表示されますが、よく見ると`ncmbgcmplugin`に含まれる`GCMInit$1`が重複してますよーって書いてある。

# 環境
MacOSX 10.14.5
Unity 2018.4.0f1
NCMB Version 2.0
Unity User Reporting 0.2.4-preview

# 解決方法
`NcmbGcmPlugin.aar`に含まれる`classes.jar`に含まれる`GCMInit$1.class`を取り除きます。

# 手順
#### Finderでプロジェクトを開き、`NcmbGcmPlugin.aar`を検索する

`MyProject/Assets/Plugins/Android/NcmbGcmPlugin.aar`

#### `NcmbGcmPlugin.aar`の拡張子を`.zip`に変えて解凍する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/918cdb9e-cc59-3180-f558-55696dbac317.png)

#### `classes.jar`の拡張子を`.zip`に変えて解凍する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/b387b0bb-a706-b8cd-856f-274f2b44b3ba.png)

#### `classes/com/nifty/cloud/mb/ncmbgcmplugin/GCMInit$1.class`を削除
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/3219e46c-77d9-59bd-216e-1b8a1a8ec510.png)

#### `classes.jar`に圧縮する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/75f93d2e-c4cf-dd98-9b83-a28b19b9bf5d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/af3cd265-f348-17d2-c174-b29d044f8657.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/8e1f00b1-462f-5c0a-42e1-c1cd5c66dd91.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/cab12495-0a26-a69f-ebd3-dc7e3a4faeb0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/4160b1da-8a2a-531c-7109-83265a7df8b9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/b859a35d-ecb2-07b6-4320-4dee355783c6.png)

#### `NcmbGcmPlugin.aar`に圧縮する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/9113052f-3910-695e-e3c4-5e2eaee5a3bd.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/d9de74d7-ab86-207e-fc3c-139287830414.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/38e27d2a-5a2f-5681-fce3-333ed6bd4185.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/1d282b2d-baf8-1503-e554-6494e5ced937.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/b06155c1-17a5-fc44-ad91-885dacc6f2fd.png)

#### これをやってもエラーになる場合
他にもNcmbGcmPlugin.aarがあるかもしれないと思ってFinderで検索するとTempフォルダ配下にもあります。Tempフォルダは消しても新しく作り直されるので、フォルダごと削除して再度ビルド。
うまくいきました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/1b704ce8-35cb-097b-b92e-b954779b5360.png)

# おまけ

#### Cloud Diagnosticsはよさそう！
Unityダッシュボードでレポートを見れますが、プロジェクトに入れただけなのに過去に遡って見れました。
（あれ？前から見れた？）
すごい、こんな詳しく...
てか、わたしのアプリエラー多すぎ....?!
（あとエディタのエラーも混ざってるっぽい？）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/a09b29c0-f9e7-329b-6fae-55119eb4a9e9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/a67f1f72-b28d-81f3-afbc-d20ce08a6b23.png)

エラー詳細
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/cee89430-4512-6d37-a7d3-3e02fb4608b7.png)

無料版だと過去7日間しか保持されないため、これはPlusにしたくなりますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237014/a27efda0-8190-203a-ece1-b157fcabdad3.png)