Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create admob banner programatically with setContentView(new Activity(this)); without using xml?

This is the onCreate(); method of Game.java activity of my 2d endless running game. I am New to java and android. I completed the game and is ready to publish to playstore. But I am unable to add admob banner to my game. admob tutorials i searched all ended up for .xml layout but my setContentView(); executes the java class. Please help me solve the problem.

public class Game extends Activity {

MediaPlayer bgsound;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //turn title off
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    //set to full screen
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);


    setContentView(new GamePanel(this));



    //sound
    bgsound = MediaPlayer.create(Game.this, R.raw.bgsound);
    bgsound.setLooping(true);
    bgsound.start();

}
like image 721
theNirdosh Avatar asked Dec 02 '25 00:12

theNirdosh


1 Answers

Create the layout container programatically:

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    LinearLayout layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.VERTICAL);

    // Create a banner ad
    mAdView = new AdView(this);
    mAdView.setAdSize(AdSize.SMART_BANNER);
    mAdView.setAdUnitId("myAdUnitId");

    // Create an ad request.
    AdRequest.Builder adRequestBuilder = new AdRequest.Builder();

    // Optionally populate the ad request builder.
    adRequestBuilder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);

    // Add the AdView to the view hierarchy.
    layout.addView(mAdView);

    // Start loading the ad.
    mAdView.loadAd(adRequestBuilder.build());

    setContentView(layout);
}

If you're seeing this error code: W/Ads﹕ Failed to load ad: 0:

Check that you are running the newest version of Google Play Services in build.gradle:

dependencies {
    compile 'com.google.android.gms:play-services-ads:7.5.0'
    }

Check that you have the correct permissions in Manifest.xml:

<!-- Include required permissions for Google Mobile Ads to run-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Check that you have the correct <meta-data> tag in Manifest.xml:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <!--This meta-data tag is required to use Google Play Services.-->
    <meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
    <activity...

Check that you have the correct settings for your AdActivity:

<!--Include the AdActivity configChanges and theme. -->
<activity android:name="com.google.android.gms.ads.AdActivity"
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
    android:theme="@android:style/Theme.Translucent" />

Check that your ad unit id is correct. For testing purposes, you may use this unit id in res/strings.xml or elsewhere:

<string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>

Full guidelines here.

like image 177
pez Avatar answered Dec 03 '25 13:12

pez



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!