UnityからAndroid用のビルドができるように環境を整えていたが、予想外にAdMob広告の実装でハマってしまった。
自分はAndroidに関しては知識がほとんどないので、ネットの情報が頼りだったのだが、出回っている情報が微妙に古かったりすると応用を効かせて解決することが難しく途方に暮れることが多い。
cocos2d-xでAndroid用に
「ごはんよそって2」(
iOS版はこちら)を作った時は、AdMob実装にそんなに手間取らなかったのだが、最新のGoogle Play Servicesでは状況が違った。
そもそもはAPKの肥大化を避けるために、Google Play Servicesのすべてをプロジェクトにインポートする方式をやめて、必要なサービスだけをインポートするようになったらしい。
Java SE 1.7、Android SDK、Android Studio、Google Play Services、Unity Plugin for the Google Mobile Ads SDKなどのセットアップをすませ、いざAndroid用にプロジェクトをBuild&Runするとエラーで止まってしまう。コンソールには以下のエラーが表示されている。途方に暮れる瞬間である。
CommandInvokationFailure: Failed to re-package resources. See the Console for details.
/Users/kenichi/Library/Android/sdk/build-tools/23.0.3/aapt package --auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S "res" -I "/Users/kenichi/Library/Android/sdk/platforms/android-23/android.jar" -F bin/resources.ap_ --extra-packages com.hamken100per.android.helloandroid:android.support.v7.appcompat:com.google.firebase:com.google.android.gms.ads.impl:com.google.android.gms.ads:com.google.android.gms.base:com.google.android.gms:com.google.android.gms.tasks:android.support.v4 -S "/Users/kenichi/Documents/Programs/Unity/AndroidTest/Temp/StagingArea/android-libraries/appcompat-v7-23.1.1/res" -S "/Users/kenichi/Documents/Programs/Unity/AndroidTest/Temp/StagingArea/android-libraries/firebase-common-9.0.0/res" -S "/Users/kenichi/Documents/Programs/Unity/AndroidTest/Temp/StagingArea/android-libraries/play-services-ads-9.0.0/res" -S "/Users/kenichi/Documents/Programs/Unity/AndroidTest/Temp/StagingArea/android-libraries/play-services-ads-lite-9.0.0/res" -S "/Users/kenichi/Documents/Programs/Unity/AndroidTest/Temp/StagingArea/android-libraries/play-services-base-9.0.0/res" -S "/Users/kenichi/Documents/Programs/Unity/AndroidTest/Temp/StagingArea/android-libraries/play-services-basement-9.0.0/res" -S "/Users/kenichi/Documents/Programs/Unity/AndroidTest/Temp/StagingArea/android-libraries/play-services-tasks-9.0.0/res" -S "/Users/kenichi/Documents/Programs/Unity/AndroidTest/Temp/StagingArea/android-libraries/support-v4-23.1.1/res"
stderr[
/Users/kenichi/Documents/Programs/Unity/AndroidTest/Temp/StagingArea/android-libraries/appcompat-v7-23.1.1/res/layout/abc_screen_toolbar.xml:27: note: removing attribute http://schemas.android.com/apk/res/android:touchscreenBlocksFocus from <android.support.v7.widget.ActionBarContainer>
/Users/kenichi/Documents/Programs/Unity/AndroidTest/Temp/StagingArea/android-libraries/appcompat-v7-23.1.1/res/layout/abc_screen_toolbar.xml: note: using v21 attributes; synthesizing resource com.hamken100per.android.helloandroid:layout/abc_screen_toolbar for configuration v21.
AndroidManifest.xml:19: Tag <provider> attribute authorities has invalid character '$'.
]