Ad Size and Ad unit id must be set before loadAd is called

zbz.lvlv picture zbz.lvlv · Apr 28, 2014 · Viewed 37.3k times · Source

I have this in my main xml file:

<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adUnitId="******************"
        ads:adSize="BANNER"
        android:id="@+id/adView"/>

I have already set the ad size and unit id, but when this is run (from MainActivity.java),

AdView adView = (AdView)this.findViewById(com.example.lovetestactual.R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

It threw an exception of what is in the title.

Answer

Hamed MP picture Hamed MP · Jun 1, 2014

I found solution in the github example, that is:

instead of

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

delete the xmlns:ads*** tag and add

xmlns:ads="http://schemas.android.com/apk/res-auto"

tag to your LinearLayout tag as follow:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:ads="http://schemas.android.com/apk/res-auto"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="match_parent">
<TextView android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:text="@string/hello"/>
<com.google.android.gms.ads.AdView android:id="@+id/adView"
                       android:layout_width="match_parent"
                       android:layout_height="wrap_content"
                       ads:adSize="BANNER"
                       ads:adUnitId="INSERT_YOUR_AD_UNIT_ID_HERE"/>
</LinearLayout>

That's it :)

github link for this xml