

「AndEngineでつくる Android 2Dゲーム」という本を購入し、勉強をしていました。

最後の最後、本の情報が古いからでしょうか、本の通りにやっても広告の表示ができなくて困ってしまいました。

本の通りと言っても、AdMob自体は最新のものです。エラーも起きていません。  
が、どうしてもloadAd();のところで強制終了です。

みなさんどのようにしてAdMob広告を表示してますか？ソースを教えていただきたいです。

思い切った、図々しい質問で申し訳ありません。

一つではないでしょうけども、ズバリ正解のある質問だと思いましたので、「このようなソースですがどこが悪いのでしょう」などと質問するより、「こうすればできる！」というのを提示していただいた方が、こちらの知識不足で情報を十分に伝えることができない、などの事態が避けられると思いましたので、このような形にさせていただきました。

よろしくお願いします。


CC BY-SA 3.0
2015-01-16T19:15:57.703
4712
2015-03-16T16:30:06.177
2015-01-17T07:23:08.340
7481
question
android admob
AndEngineを使ったAndroidアプリにAdMob広告を表示したい


「AndEngineでつくる Android 2Dゲーム」という本を持っていないので、一般的なAdMobの設置方法で。

1 GooglePlayServicesをdependenciesに追加する

[code]

    compile 'com.google.android.gms:play-services:6.5.+'
    
[/code]

2 AndroidManifest.xmlのの子に次のエントリーを追加する

[code]

    <meta-data android:name="com.google.android.gms.version"
               android:value="@integer/google_play_services_version"/>
    
[/code]

３ ActivityのonCreate()あたりで、AdViewインスタンスを生成しViewに追加

[code]

    mAdView = new AdView(this);
    mAdView.setAdUnitId(Constants.ADMOB_ID);
    mAdView.setAdSize(AdSize.BANNER);
    
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice("テストデバイス用のID")
            .build();
    mAdView.loadAd(adRequest);
    
    FrameLayout adLayout = (FrameLayout) findViewById(R.id.layout_ad);
    adLayout.addView(mAdView);
    
[/code]

4 onResume() / onPause() / onDestroy()でそれぞれメソッドを呼ぶ

[code]

    @Override
    protected void onResume() {
        super.onResume();
        mAdView.resume();
    }
    
    @Override
    protected void onPause() {
        super.onPause();
        mAdView.pause();
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        mAdView.destroy();
    }
    
[/code]


CC BY-SA 3.0
2015-01-17T04:16:17.863
4723
2015-01-17T04:16:17.863
845
4712
answer


私も勉強中です。同様に表示されなくて悩んでいましたが、以下でなんとかできました。

具体的には、MainActivity内にonCreateメソッドを追記してください。  
あの本だとonCreateSceneに書くように指定してあるんですよね。

[code]

    public class MainActivity extends MultiSceneActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            adView = (AdView)this.findViewById(R.id.adView);
            AdRequest adRequest = new AdRequest.Builder()
                    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                    .addTestDevice("xxxxxxxx")
                    .build();
            adView.loadAd(adRequest);
        }
    }
    
[/code]

すでに解決済みでしょうか。


CC BY-SA 3.0
2015-03-16T13:48:58.653
7984
2015-03-16T16:30:06.177
2015-03-16T16:30:06.177
3313
8858
4712
answer