Android StudioでAdMob SDKを導入する
アプリもそろそろ完成というとこで、AdMobを導入しようと思った。
そこでいろいろggったりしたけど、Eclipseでの解説だったり(そもそも公式がEclipse)古い情報だったりでうまいこと導入できなかった。
でもなんとか解決したのでそれをメモ。
1.SDKを入手する。
これは単純に公式から落として来ればいい。
適当なところに解凍しておく。(自分はC:\sdk\GoogleAdMobAdsSdkAndroid-6.4.1に解凍した)
2.Android StudioでプロジェクトにSDKをインポートする。
これが大変だった。Eclipseではそれようのウィザードがあるらしく簡単にしか説明されてない所が多いのだが、Android Studioではどうやんだよって。
それでもいくつかのサイトでは導入方法が書かれていたし、ここが一番参考になった。
自分がやった手順を書いておくと、
1.プロジェクトのlibsフォルダにさきほど解凍したjarファイルをコピーする。
(今使っているAndroid Studio最新版*1でNew Project...して作られるプロジェクトにはlibsフォルダがなかったのでWindowsのエクスプローラーからフォルダ作成を行った。)
2.するとAndroid StudioのProjectツールバー(左のツリーの奴)のプロジェクトの配下にlibsフォルダとその中に先のjarファイルが出現する。
3.admobAppの下の、build.gradleを編集する。
dependencies {
compile 'com.android.support:appcompat-v7:18.0.0'
}
となっているところを
dependencies {
compile 'com.android.support:appcompat-v7:18.0.0'
compile files('libs/GoogleAdMobAdsSdk-6.4.1.jar')
}
と一行追加する。
4.Android Studioを終了し、コマンドプロンプトでプロジェクトのパスに移動する。(gradlew.batのあるところ)
そこで「gradlew clean」と打ち込み、実行する。
ここで「BUILD SUCCESSFUL」と出れば成功。Android Studioを終了せずに実行したところエラーが出たので、終了してからやること。
この代わりに「Sync Project with Gradle Files」を実行するように書いている記事がいくつかあるが、自分の場合はそれでは出来なかった。( Gradle: Execution failed for task ':admobApp:clean'. > Unable to delete file: <ProjectPath>\admobApp\build\exploded-bundles\ComAndroidSupportAppcompatV71800.aar\classes.jarというエラーが発生した。)
ちなみにこのエラーはRebuild Projectを実行しても発生する。なぜだろう。
3.AndroidManifest.xmlを編集する
Android Studioを起動し、こちらの記事にあるようにAndroidManifest.xmlを編集する。(割愛)
4.レイアウトを作成する
res/layout/main_layout.xml(起動時に呼び出すレイアウト)に以下のタグを追加する。これがAdMobを表示するViewとなる。
<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="<広告ユニットID>"
ads:adSize="BANNER"
ads:testDevices="<デバイスID>"
ads:loadAdOnCreate="true" />
<広告ユニットID>は広告のユニットIDです(そのまま)
AdMobの公式サイトから「収益化」→「すべてのアプリ」から見れる広告ユニットに広告ユニットIDが表示されている。
<デバイスID>は最初は「TEST_DEVICE」としておけば良い。コンパイルして実機に転送するとLogCatにAdsというタグで「To get test ads on this device, call adRequest.addTestDevice("XXXXXXXXX");」と出力されているので、そのXXXXXXXXXを次から入力する。
また、main_layout.xmlのルート要素(おそらくRelativeLayout)に「xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"」という属性を追加しておく。これでdas:adUnitIdなどが機能する。
5.実行する
Runし、実機に転送してみると、このようなテスト用のバナーが表示されているはずです。
これで全員がうまくいくとは思いませんが(自分にとって他の記事がそうだったように‥)自分はこれでうまくいきました。
ので参考になれば幸いです。