Android Studioでadmobを使用して広告を表示
cordovaとは勝手がちがう
あっちは勝手にプラグインさんがいろいろやってくれましたがこちらは多少手間を掛ける必要がありそうです
準備
admobの登録とかは割愛しますので頑張ってください(^_^;)
アプリは今までのサンプルを使用します
Google Play Servicesのインストール
SDKを起動してGoogle Play Servicesをインストールしておきます
build.gradleへ設定追加
Google Play Servicesの設定を追加します
apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.example.matsumotoshigeharu.sampleappimage" minSdkVersion 15 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.google.android.gms:play-services:6.+' }
AndroidManifest.xmlの修正
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.matsumotoshigeharu.sampleappimage" > <!-- add start --> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <!-- add end --> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <!-- add start --> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <!-- add end --> <activity android:name=".MainActivity" android:label="@string/app_name" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- add start --> <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent"/> <!-- add end --> </application> </manifest>
アクティビティのXMLを修正
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="image1" android:id="@+id/btn1" android:layout_marginTop="91dp" android:layout_marginLeft="31dp" android:layout_marginStart="31dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="image2" android:id="@+id/btn2" android:layout_marginRight="47dp" android:layout_marginEnd="47dp" android:layout_alignTop="@+id/btn1" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="push button" android:id="@+id/textView" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textIsSelectable="false" android:textSize="@dimen/abc_action_bar_progress_bar_size" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/img1" android:layout_centerVertical="true" android:layout_centerHorizontal="true" /> <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/adView" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" ads:adUnitId="<広告ユニットID>" ads:adSize="BANNER" /> </RelativeLayout>
メインアクティビティを修正
onCreate内に処理を追加
package com.example.matsumotoshigeharu.sampleappimage; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.*; // 広告用設定 import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdView; public class MainActivity extends ActionBarActivity { private Button btn1; private Button btn2; private ImageView img1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button)findViewById(R.id.btn1); btn2 = (Button)findViewById(R.id.btn2); img1 = (ImageView)findViewById(R.id.img1); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { img1.setImageResource(R.drawable.janken_choki); } }); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { img1.setImageResource(R.drawable.janken_par); } }); // 広告用設定 AdView adView = (AdView)this.findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .build(); adView.loadAd(adRequest); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
動作確認
なんか実機にいれたら出ない(´・ω・`)
原因はわからないけどバージョン関連の問題かも?
エミュレータの方では表示できたのでそのままにしておく
↓
画面のwidthが足りないとAdMobの広告(AdView)が表示されない - 地球ウォーカー2
とのことだったようで
対応後
↓
かいけつ