Android Studioでアプリを作る。

Android Studioを使ってアプリを作ります。Java初心者でIDEを使うのも初めてです。いろいろ調べないとわからないので、そのついでに調べたことをメモっていきたいと思います。

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ファイルが出現する。

f:id:kittohosi:20130917180411p:plain

 

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が表示されている。

f:id:kittohosi:20130917223905p:plain

 

<デバイス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し、実機に転送してみると、このようなテスト用のバナーが表示されているはずです。

f:id:kittohosi:20130917224809p:plain

 

これで全員がうまくいくとは思いませんが(自分にとって他の記事がそうだったように‥)自分はこれでうまくいきました。

ので参考になれば幸いです。

*1:Android Studio (I/O Preview) 0.2.8