回答編集履歴

11

情報を追加

2017/11/27 23:45

投稿

toris-birds
toris-birds

スコア122

test CHANGED
@@ -1,7 +1,3 @@
1
- 試していないので上手く行くかは分かりませんが・・
2
-
3
-
4
-
5
1
  原因:
6
2
 
7
3
  エラーで、already added となっているものが重複しているため。
@@ -10,29 +6,25 @@
10
6
 
11
7
 
12
8
 
13
-
14
-
15
9
  対処法:
16
10
 
11
+ NCMBのインポート時に `play-services-*.aar`、`support-*.aar`などのチェックを外す。
12
+
13
+ ※PlayServicesResolverでは競合を解消しきれませんでした。
14
+
15
+
16
+
17
+ 旧:
18
+
17
19
  重複しているファイルを削る など。
18
20
 
19
-
20
-
21
21
  実際は、追記で揚げている、[Qiita - NCMB Unity SDKがAdMob等のAndroidプラグインと競合する場合の解決](https://qiita.com/Takaaki_Ichijo/items/d9a7639f2dc4d1060616) の、「参考にしたウェブサイト」のリンク先[AdMob と Nifty Cloud のプッシュ通知を共存させる [Unity]](http://b.i-tach.com/?p=1015) または、似たような内容の「パターン2:Android用のライブラリがダブる」辺りに書いてある内容を試すことになると思います。
22
22
 
23
23
 
24
24
 
25
-
26
-
27
- 参考:
28
-
29
- 「NIFTYCloud-mbaas admob 競合 com.google.android.gms」の検索結果(試した時点で、5件)
30
-
31
-
32
-
33
- ---
25
+ ---
34
-
26
+
35
- 以降、再現実験。
27
+ 以降、再現実験。長いので時間がある時に。
36
28
 
37
29
 
38
30
 

10

情報を追加

2017/11/27 23:45

投稿

toris-birds
toris-birds

スコア122

test CHANGED
@@ -328,6 +328,28 @@
328
328
 
329
329
 
330
330
 
331
+ ```
332
+
333
+ stdout[
334
+
335
+ processing archive H:\Projects\Unity\TestProject2\Temp\StagingArea\android-libraries\GoogleMobileAdsPlugin\libs.\unity-plugin-library.jar...
336
+
337
+ processing com/google/unity/BuildConfig.class...
338
+
339
+ ・・・
340
+
341
+ processing archive H:\Projects\Unity\TestProject2\Temp\StagingArea\android-libraries\NcmbGcmPlugin\libs.\classes.jar...
342
+
343
+ ・・・
344
+
345
+ processing archive H:\Projects\Unity\TestProject2\Temp\StagingArea\android-libraries\play-services-ads-11.6.0\libs.\classes.jar...
346
+
347
+ ・・・
348
+
349
+ ```
350
+
351
+
352
+
331
353
  ---
332
354
 
333
355
  追記9:
@@ -336,6 +358,8 @@
336
358
 
337
359
  今回は、インポート時に、Goolge Play Services関連のファイルなどをインポートしないでビルドが通るか実験してみます。
338
360
 
361
+ ※エラーログ(processing archive ...)に出力されていたので、念のためunity-plugin-library.jarもインポート対象から外してあります。
362
+
339
363
 
340
364
 
341
365
  AdMob
@@ -375,3 +399,125 @@
375
399
 
376
400
 
377
401
  ![ビルド後のログ](ae88331e0948bcb54be670fe6d69c591.png)
402
+
403
+
404
+
405
+ ---
406
+
407
+ 追記10:
408
+
409
+ Google Mobile Ads Unity Plugin の、unity-plugin-library.jarをインポートしてみます。
410
+
411
+
412
+
413
+ ![unity-plugin-library](3fdc8b1ba78c4cfe5183f5bc1bbb0152.png)
414
+
415
+
416
+
417
+ エラーは発生しませんでした。
418
+
419
+ ![イメージ説明](22af400b13d6b441fe6b308246e28e46.png)
420
+
421
+
422
+
423
+ ---
424
+
425
+ 追記11:
426
+
427
+ 確認のために、競合しそうなファイルもインポートしてみると、予想通りエラーが発生しました。
428
+
429
+
430
+
431
+ インポート前の状態:
432
+
433
+ ![インポート前](d89d4e1b4a330a297998b5c879029865.png)
434
+
435
+
436
+
437
+ NCMB の、support-*.aar、res\values\version.xmlを追加
438
+
439
+ ![NCMB](9be27f4d8203cb8f6d42b0108a1b46a1.png)
440
+
441
+
442
+
443
+ Build後のログ:
444
+
445
+ ![イメージ説明](9ed3d84ea31ce22f8825e9817e355577.png)
446
+
447
+
448
+
449
+ ```
450
+
451
+ CommandInvokationFailure: Unable to convert classes into dex format.
452
+
453
+ ・・・
454
+
455
+ stderr[
456
+
457
+ Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/compat/BuildConfig;
458
+
459
+ Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat;
460
+
461
+ Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompat;
462
+
463
+ Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompat$1;
464
+
465
+ Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompat$OnRequestPermissionsResultCallback;
466
+
467
+ Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompat$SharedElementCallback21Impl;
468
+
469
+ Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompat$SharedElementCallback23Impl;
470
+
471
+ Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompat$SharedElementCallback23Impl$1;
472
+
473
+ Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityManagerCompat;
474
+
475
+
476
+
477
+ UNEXPECTED TOP-LEVEL EXCEPTION:
478
+
479
+ java.lang.RuntimeException: Translation has been interrupted
480
+
481
+ ・・・
482
+
483
+ ```
484
+
485
+
486
+
487
+ ---
488
+
489
+ 追記12:
490
+
491
+ NCMBに入っているAssets\Plugins\Android\res\values\version.xml は、古いファイルがメンテナンスされずに残っているようです。
492
+
493
+ (ライブラリでの Assets/Plugins/Android/res を使ったリソース提供は廃止されています)
494
+
495
+
496
+
497
+ ```
498
+
499
+ <integer name="google_play_services_version">8298000</integer>
500
+
501
+ ```
502
+
503
+
504
+
505
+ ※これは、play-services-basement-8.3.0に入っている値と同じです。
506
+
507
+ パス:
508
+
509
+ (AndroidSDK)\extras\google\m2repository\com\google\android\gms\play-services-basement\8.3.0\play-services-basement-8.3.0.aar
510
+
511
+
512
+
513
+ ![resのインポートはOBSOLETE](00590f62abf67b25ee29074f2333c878.png)
514
+
515
+
516
+
517
+ ```
518
+
519
+ OBSOLETE - Providing Android resources in Assets/Plugins/Android/res is deprecated, please move your resources to an AAR or an Android Library. See "AAR plug-ins and Android Libraries" section of the Manual for more details.
520
+
521
+ UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
522
+
523
+ ```

9

情報を追加

2017/11/27 22:57

投稿

toris-birds
toris-birds

スコア122

test CHANGED
@@ -325,3 +325,53 @@
325
325
  ・・・
326
326
 
327
327
  ```
328
+
329
+
330
+
331
+ ---
332
+
333
+ 追記9:
334
+
335
+ 一旦仕切り直しで、テスト用にプロジェクトを再作成、インポートからやりなおしてみます。
336
+
337
+ 今回は、インポート時に、Goolge Play Services関連のファイルなどをインポートしないでビルドが通るか実験してみます。
338
+
339
+
340
+
341
+ AdMob
342
+
343
+ ![admob](352a534d49a4eedcc6b8f8b75fe1dab9.png)
344
+
345
+
346
+
347
+ この時点でAndroid用にBuildすると、YOUR_PACKAGE_NAMEを書き換えていない時のダイアログが表示されます。(変更対象のAssets\Plugins\Android\AndroidManifest.xmlは、NCMBに含まれているので、この時点では存在しません。)
348
+
349
+
350
+
351
+ ![YOUR_PACKAGE_NAME 書き換え忘れ](1848c163276d08b6748993fcfb67250c.png)
352
+
353
+
354
+
355
+ NCMB
356
+
357
+ ![NCMB-1](857371eaf238033276f301090b461eed.png)
358
+
359
+ ![NCMB-2](a766e8e0bdcb0c4d72161c34b3456d57.png)
360
+
361
+
362
+
363
+ このままBuildすると、またYOUR_PACKAGE_NAMEのダイアログが表示されるので、Assets\Plugins\Android\AndroidManifest.xmlのYOUR_PACKAGE_NAMEを、適切なパッケージ名に変更しておきます。
364
+
365
+
366
+
367
+ この状態で、Android用のBuildをすると、ビルドが成功し、apkファイルが生成されました。
368
+
369
+ (minSdkVersionが低いというワーニングが出ていますが、ビルドは通ります)
370
+
371
+
372
+
373
+ やはり、インポート時にバージョンが競合するファイルをインポートしているのが原因のようです。
374
+
375
+
376
+
377
+ ![ビルド後のログ](ae88331e0948bcb54be670fe6d69c591.png)

8

情報を追加

2017/11/27 21:40

投稿

toris-birds
toris-birds

スコア122

test CHANGED
@@ -32,6 +32,10 @@
32
32
 
33
33
  ---
34
34
 
35
+ 以降、再現実験。
36
+
37
+
38
+
35
39
  追記1: build.gradleを見ると、双方が同じものに依存していますが、バージョンが異なります。
36
40
 
37
41
  ※ソースとunitypackageに入っているものでバージョンが異なるようなので、参考程度に
@@ -222,4 +226,102 @@
222
226
 
223
227
 
224
228
 
225
- ![イメージ説明](ac9c2bdaa51185b383716ff0b79d8d7c.png)
229
+ ![再度ダアログを表示する方法](ac9c2bdaa51185b383716ff0b79d8d7c.png)
230
+
231
+
232
+
233
+ ---
234
+
235
+ 追記6:
236
+
237
+ JDKが古い(1.7など)場合は、次のようなエラーが表示されます。
238
+
239
+ ※`Unsupported major.minor version 52.0`も、JDKのバージョンが原因
240
+
241
+ 参考: [Qiita - Unsupported major.minor version 51.0 = Java7 以上使え](https://qiita.com/seratch@github/items/731b69d3edabe9c8bc0d)
242
+
243
+
244
+
245
+ 対処法は、エラーメッセージに表示されているとおり、Edit > Preferences... > ExternalTools > Android の、JDK 欄で、JDK1.8以降のフォルダを選択で。
246
+
247
+
248
+
249
+ ![Unable to merge android manifests](0be52746534b6bf97b6f09f8bfb6783f.png)
250
+
251
+
252
+
253
+ ```
254
+
255
+ CommandInvokationFailure: Unable to merge android manifests. See the Console for more details.
256
+
257
+ ・・・
258
+
259
+ Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/manifmerger/Merger : Unsupported major.minor version 52.0
260
+
261
+ ```
262
+
263
+
264
+
265
+ ![error log-jdk1.7](b4455c74ec383b0bb7b303b4fcbd67a4.png)
266
+
267
+ ```
268
+
269
+ The configured JDK 1.7 is too old to build Android applications with recent libraries.
270
+
271
+ Please install JDK version 1.8 or newer and configure Unity to use the new JDK installation in the 'Unity Preferences > External Tools' menu.
272
+
273
+ ```
274
+
275
+
276
+
277
+ ---
278
+
279
+ 追記7:
280
+
281
+ Assets\Plugins\Android\AndroidManifest.xml の、YOUR_PACKAGE_NAMEを適切なパッケージ名に変更していない場合に発生。
282
+
283
+
284
+
285
+ ![YOUR_PACKAGE_NAMEの変更忘れ](6347ea0e78f685fef314a19066e40926.png)
286
+
287
+
288
+
289
+ ```
290
+
291
+ UnityException: Bundle Identifier has not been set up correctly
292
+
293
+ Please set the Bundle Identifier in the Player Settings. The value must follow the convention 'com.YourCompanyName.YourProductName' and can contain alphanumeric characters and underscore.
294
+
295
+ Each segment must not start with a numeric character or underscore.
296
+
297
+ ```
298
+
299
+
300
+
301
+ ---
302
+
303
+ 追記8:
304
+
305
+ ここで、質問のエラーが再現します。
306
+
307
+
308
+
309
+ ![この時点で質問のエラーが再現](50f1791c85edf74fce029a0eb7b97124.png)
310
+
311
+
312
+
313
+ ```
314
+
315
+ CommandInvokationFailure: Unable to convert classes into dex format.
316
+
317
+ ・・・
318
+
319
+ stderr[
320
+
321
+ Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/common/internal/zzaa;
322
+
323
+ Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/common/internal/zzbf;
324
+
325
+ ・・・
326
+
327
+ ```

7

情報を追記

2017/11/27 19:53

投稿

toris-birds
toris-birds

スコア122

test CHANGED
@@ -32,9 +32,9 @@
32
32
 
33
33
  ---
34
34
 
35
- 追記1: 双方が同じものに依存しているのでスからビルドしおした方が早いかもしれせん
35
+ 追記1: build.gradleを見ると、双方が同じものに依存していますがジョンが異
36
-
36
+
37
- (AppCompat、Play Services競合発生す可能性があります)
37
+ ※ソースとunitypackageに入っているものバージョン異なようなので、参考程度に
38
38
 
39
39
 
40
40
 
@@ -86,7 +86,7 @@
86
86
 
87
87
  追記2: 
88
88
 
89
- NCMB.3.1.0 のzipファイルから読み取れる、Android関連のファイル名など
89
+ NCMB.3.1.0 のzipファイル(に入っているNCMB.unitypackage)から読み取れる、Android関連のファイル名など
90
90
 
91
91
 
92
92
 
@@ -139,3 +139,87 @@
139
139
  ![ncmb-1](9c1bf47ba4c469114d71808b8ecf6094.png)
140
140
 
141
141
  ![ncmb-2](efff12da91821a233d1446e749250e4f.png)
142
+
143
+
144
+
145
+ ---
146
+
147
+ 追記4:
148
+
149
+ Android用にBuildした時の画面
150
+
151
+ ※今回はエラー再現用に、Resolve Conflictダイアログで「No」を選択しています。
152
+
153
+ ここで「Yes」を選択すれば、今回の問題は解決しそうですが・・
154
+
155
+ ※Resolve ConflictダイアログでYesを選択した場合は、(メッセージ通りに動作するなら)競合しているファイルは取り除かれるかと思います。
156
+
157
+ ※このダイアログは、Google Mobile Ads Unity Pluginに入っている、PlayServicesResolverによる表示かと思います。(パスは、Assets\PlayServicesResolver\Editor*.dll)
158
+
159
+ 関連する設定は、Assets > Play Services Resolverにあります。
160
+
161
+
162
+
163
+ ※実験時は、iOS関連のファイルをインポートしていませんが、`using UnityEditor.iOS.Xcode;`で今回の現象と関係のないエラーが発生するため、 Assets\Editor\UpdateXcodeProject.cs を全行コメントアウトしています。
164
+
165
+
166
+
167
+ play-services-basement-11.6.0.aar と
168
+
169
+ play-services-basement-11.0.0.aar が競合している、などのメッセージが表示されます。
170
+
171
+ ※まっさらな状態のUnityで実験したので、JDKのバージョン(1.7になっている)などのエラーも出ていますが、今回の現象とは関係ありません。
172
+
173
+
174
+
175
+ この競合は、Google Mobile Ads Unity Plugin v3.9.0 のソースにあるbuild.gradleで指定している
176
+
177
+ > `api 'com.google.android.gms:play-services-ads:11.6.0'`
178
+
179
+
180
+
181
+ と、NCMB.unitypackageに入っている
182
+
183
+ > Assets/Plugins/Android/play-services-basement-11.0.0.aar
184
+
185
+
186
+
187
+ などと一致します。
188
+
189
+
190
+
191
+ 従って、競合については、NCMBのインポート時に、バージョンが競合するaarファイルをインポートしたのが原因です。
192
+
193
+ ※バージョンは、NCMBの方が古いものと新しいものが混在しているので、インポート時にチェックを外すよりも、Resolve ConflictダイアログでYesを選択する方がよいかと思います。
194
+
195
+ エラーメッセージに表示される、競合しているファイル:
196
+
197
+ play-services-basement (11.6.0.aar, 11.0.0.aar)
198
+
199
+ support-compat (25.2.0.aar, 26.0.2.aar)
200
+
201
+ support-core-utils (25.2.0.aar, 26.0.2.aar)
202
+
203
+ support-v4 (25.2.0.aar, 26.0.2.aar)
204
+
205
+
206
+
207
+
208
+
209
+ ![build-1](88188c0ed7e8b0cb23a4a625c9cfc3fa.png)
210
+
211
+ ![build-2](f056e7b523093c08e5a77cf29219187d.png)
212
+
213
+ ![build-3](c8efffb69baff02303e2469dce782872.png)
214
+
215
+
216
+
217
+ ---
218
+
219
+ 追記5:
220
+
221
+ ※Resolve Conflictダイアログで、一旦 No を選択してしまうと、以降のBuildで、ダイアログが表示されなくなります。その場合は、Assets > Play Services Resolver > Android Resolver > Force Resolveを選択すると、再度ダイアログが表示されるようになります。
222
+
223
+
224
+
225
+ ![イメージ説明](ac9c2bdaa51185b383716ff0b79d8d7c.png)

6

情報を追加

2017/11/27 19:04

投稿

toris-birds
toris-birds

スコア122

test CHANGED
@@ -117,3 +117,25 @@
117
117
  Assets/Plugins/Android/NcmbGcmPlugin.aar
118
118
 
119
119
  Assets/Plugins/Android/AndroidManifest.xml
120
+
121
+
122
+
123
+ ---
124
+
125
+ 追記3:
126
+
127
+ Unityへのインポート時の画面
128
+
129
+
130
+
131
+ Google Mobile Ads Unity Plugin v3.9.0
132
+
133
+ ![admob](e4b594e6644baf359cf3e5965f5bd24e.png)
134
+
135
+
136
+
137
+ NCMB.3.1.0
138
+
139
+ ![ncmb-1](9c1bf47ba4c469114d71808b8ecf6094.png)
140
+
141
+ ![ncmb-2](efff12da91821a233d1446e749250e4f.png)

5

typo修正

2017/11/27 17:25

投稿

toris-birds
toris-birds

スコア122

test CHANGED
@@ -86,7 +86,7 @@
86
86
 
87
87
  追記2: 
88
88
 
89
- NCMB.3.1.0 のzipファイルから読み取れる、Android関連のファイルなど
89
+ NCMB.3.1.0 のzipファイルから読み取れる、Android関連のファイルなど
90
90
 
91
91
 
92
92
 

4

不要な行を削除

2017/11/27 16:25

投稿

toris-birds
toris-birds

スコア122

test CHANGED
@@ -88,8 +88,6 @@
88
88
 
89
89
  NCMB.3.1.0 のzipファイルから読み取れる、Android関連のファイルなど
90
90
 
91
- (ソートしていないので見にくいかもしれませんが・・)
92
-
93
91
 
94
92
 
95
93
  Assets/Plugins/Android

3

情報を追記

2017/11/27 16:23

投稿

toris-birds
toris-birds

スコア122

test CHANGED
@@ -79,3 +79,43 @@
79
79
  }
80
80
 
81
81
  ```
82
+
83
+
84
+
85
+ ---
86
+
87
+ 追記2: 
88
+
89
+ NCMB.3.1.0 のzipファイルから読み取れる、Android関連のファイルなど
90
+
91
+ (ソートしていないので見にくいかもしれませんが・・)
92
+
93
+
94
+
95
+ Assets/Plugins/Android
96
+
97
+ Assets/Plugins/Android/res
98
+
99
+ Assets/Plugins/Android/res/values
100
+
101
+ Assets/Plugins/Android/res/values/version.xml
102
+
103
+ Assets/Plugins/Android/support-compat-26.0.2.aar
104
+
105
+ Assets/Plugins/Android/support-v4-26.0.2.aar
106
+
107
+ Assets/Plugins/Android/play-services-basement-11.0.0.aar
108
+
109
+ Assets/Plugins/Android/play-services-tasks-11.0.0.aar
110
+
111
+ Assets/Plugins/Android/play-services-gcm-11.0.0.aar
112
+
113
+ Assets/Plugins/Android/play-services-base-11.0.0.aar
114
+
115
+ Assets/Plugins/Android/play-services-iid-11.0.0.aar
116
+
117
+ Assets/Plugins/Android/support-core-utils-26.0.2.aar
118
+
119
+ Assets/Plugins/Android/NcmbGcmPlugin.aar
120
+
121
+ Assets/Plugins/Android/AndroidManifest.xml

2

情報を追加

2017/11/27 16:22

投稿

toris-birds
toris-birds

スコア122

test CHANGED
@@ -27,3 +27,55 @@
27
27
  参考:
28
28
 
29
29
  「NIFTYCloud-mbaas admob 競合 com.google.android.gms」の検索結果(試した時点で、5件)
30
+
31
+
32
+
33
+ ---
34
+
35
+ 追記1: 双方が同じものに依存しているので、ソースからビルドしなおした方が早いかもしれません。
36
+
37
+ (AppCompat、Play Servicesで競合が発生する可能性があります)
38
+
39
+
40
+
41
+ Google Mobile Ads Unity Plugin v3.9.0 のソースにある、
42
+
43
+ source\android-library\app\build.gradle (抜粋)
44
+
45
+
46
+
47
+ ```
48
+
49
+ dependencies {
50
+
51
+ api fileTree(dir: 'libs', include: ['*.jar'])
52
+
53
+ api 'com.android.support:appcompat-v7:26.1.0'
54
+
55
+ api 'com.google.android.gms:play-services-ads:11.6.0'
56
+
57
+ }
58
+
59
+ ```
60
+
61
+
62
+
63
+ NCMB.3.1.0 のソースにある、
64
+
65
+ NcmbGcmPlugin\ncmbgcmplugin\build.gradle (抜粋)
66
+
67
+
68
+
69
+ ```
70
+
71
+ dependencies {
72
+
73
+ compile fileTree(dir: 'libs', include: ['*.jar'])
74
+
75
+ compile 'com.android.support:appcompat-v7:26.0.2'
76
+
77
+ compile 'com.google.android.gms:play-services:8.3.0'
78
+
79
+ }
80
+
81
+ ```

1

フォーマット修正

2017/11/27 16:13

投稿

toris-birds
toris-birds

スコア122

test CHANGED
@@ -18,11 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- 実際は、追記で揚げている、[Qiita - NCMB Unity SDKがAdMob等のAndroidプラグインと競合する場合の解決](https://qiita.com/Takaaki_Ichijo/items/d9a7639f2dc4d1060616) の、
22
-
23
- 「参考にしたウェブサイト」のリンク先[AdMob と Nifty Cloud のプッシュ通知を共存させる [Unity]](http://b.i-tach.com/?p=1015) または、
24
-
25
- 似たような内容の「パターン2:Android用のライブラリがダブる」辺りに書いてある内容を試すことになると思います。
21
+ 実際は、追記で揚げている、[Qiita - NCMB Unity SDKがAdMob等のAndroidプラグインと競合する場合の解決](https://qiita.com/Takaaki_Ichijo/items/d9a7639f2dc4d1060616) の、「参考にしたウェブサイト」のリンク先[AdMob と Nifty Cloud のプッシュ通知を共存させる [Unity]](http://b.i-tach.com/?p=1015) または、似たような内容の「パターン2:Android用のライブラリがダブる」辺りに書いてある内容を試すことになると思います。
26
22
 
27
23
 
28
24