【Unity】【Android】AdMobを導入したらBuildができなくなった
- 評価
- クリップ 0
- VIEW 768
概要
Unity初心者で、初めて、個人的に、ゲームアプリを作っています(Android, iOSいずれも対応)。
今まで、Android版は、Build and Runを行って実機テストができていたのですが、AdMobを使って、バナー広告を入れようとしたところ、Buildに失敗しました。
エラーログ(後述)を見たところ、どうやら重複しているものがあるので、削除すればよいようなのですが、AdMobの何を削除したら正常に戻るかわかりませんでした。
調査結果
エラーメッセージなどを手がかりに、検索したところ、どうやら、重複しているライブラリを削除すればよいことまではわかりました。
ところが、AdMobのパッケージ、つまり自分で作ったものではないため、何を削って何を足せばいいのかわからない状況が起きています。
iOS版も同様のトラブルが起きている
iOS版も作成していて、Xcodeを使ってbuildしたところ、UnityAdsを入れた途端に、同じような事態になりました。
調べたところ、このやりとりが見つかりました。
https://teratail.com/questions/48409">https://teratail.com/questions/48409
そこで、Plugins/iOS/unityads関連のファイルを全部消したところ、さらに悪化してしまい、こちらを放置したまま、Android版の作業を行なっていました。
今回は、適当に全部削除するのは危険と判断して、何を削除すれば解決するか調べてみたのですが、どのファイルのどこを削ればよいのか見つけられず、身動きが取れなくなりました。
※UnityAdsは、Androidでは無事に動いています。
まとめ
Unityでの開発はこれが初めてで、個人的にやっていることもあり、なにをどうしていいのか、非常に戸惑っています。
どうか、ご経験のある方、ご存知の方、お知恵を貸していただければ助かります。
よろしくお願いいたします。
発生している問題・エラーメッセージ
stderr[
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActionBarDrawerToggle$Delegate;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActionBarDrawerToggle$DelegateProvider;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompat;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompat$1;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompat$OnRequestPermissionsResultCallback;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompat$SharedElementCallback21Impl;
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.RuntimeException: Translation has been interrupted
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:614)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:310)
at com.android.dx.command.dexer.Main.runDx(Main.java:288)
at com.android.dx.command.dexer.Main.main(Main.java:244)
at com.android.dx.command.Main.main(Main.java:95)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at SDKMain.main(SDKMain.java:130)
Caused by: java.lang.InterruptedException: Too many errors
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:606)
... 9 more
]
補足情報(FW/ツールのバージョンなど)
Windows10
Unity 2017.3.1f1
Visual Studio 2017
Google Mobile Ads Unity Plugin v3.15.0
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
Unity 2017.3.1f1
Google Mobile Ads Unity Plugin v3.15.0
Unityとpluginのバージョンで差分があるようですが
リンク内容
Unintyは古いバージョンでPluginは新しい
組み合わせを変えてみてはどうでしょう
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 89.99%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2018/09/01 11:01
一度試して、またご報告します。
2018/09/01 21:24
まず、Unity 2017.3.1f1を、Unity 2018.2.6f1 にしました。
そして、再度UnityAds2.0を導入、Google Mobile Ads Unity Plugin v3.15.1を入れて、Buildをしてみたのですが、今度は、
CommandInvokationFailure: Unable to merge android manifests.
(以下長いので省略)
という形でまた問題が起きてしまいました。
いろいろ調べたり、削除したり、また導入したりを繰り返してみましたが、解決には至りませんでした。
ajaさんに教えていただいたのに、申し訳ないです。
再度質問を作り直したほうがよいのでしょうか。
などとお伺いするのも申し訳ないのですが、ご意見いただけると幸いです。
2018/09/01 21:56
状況が変わったわけですね
以下の内容を試してから再度質問するか、このまま続けるかを決めてはどうでしょうか。
こちらの内容を元に修正をほどこしてみる
https://teratail.com/questions/101994
現在のプロジェクトとは別に単体でテストとして
Android (あるいはiOS)のAdMobを確認し
正しくAdMobが表示されるか確認
これができなければ環境設定などに問題があると思われます
2018/09/13 19:53
お返事が遅くなりまして大変申し訳ありません。
諸事情ありまして、本日やっと作業が再開できましたので、現在までのところの結果をご報告いたします。
まず、Android端末で、ただAdMobを表示させるプロジェクトを作成して実行したところ、Build and Runも成功し、バナー表示もされたので、環境設定には問題がないことが判明しました。
続いて、教えていただいた修正を施してみました。
ところが、今まで一度も出なかった部分でのエラーが出るようになりました。まったく触れていない部分のスクリプトエラーが出るようになったので、何かおかしいと見なおしたところ、Visual Studio2017が「同名の別プロジェクトなので保存できない」ようなエラーパネルを出していることに気付きました。
もしかしたら、Unityを更新したことにより、Visual Studio内では同名の別プロジェクト扱いとなっているのかもしれません。
取り急ぎ、今ここまで調査が終わりましたので、お知らせしておきます。
(この後、もう少し作業は続けます)
お返事が遅れまして、本当に申し訳ございませんでした。
2018/09/13 21:11
先ほどの私の投稿で、Visual Studio2017周りが怪しいとご報告しましたが、その後調査したところ、更新作業を行えばよいということが判明しました。
そこで更新をしたところ、突然Build and Runが通りました。
無事に、Android端末でも、バナーが表示されるようになりました。
つまり、ajaさんのご指摘があった、
「UnityとAdMobのバージョンのずれ」
がすべての原因だったようです。
ajaさんのご指摘のおかげで、無事解決することができました。
本当にありがとうございました。