1

When I try to load an interstitial, I get the following error:

02-25 10:24:58.198 2310-2310/template.maintemplate E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: template.maintemplate, PID: 2310 java.lang.RuntimeException: Unable to start activity ComponentInfo{template.maintemplate/template.maintemplate.sover}: java.lang.IllegalStateException: The ad unit ID must be set on InterstitialAd before loadAd is called. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Caused by: java.lang.IllegalStateException: The ad unit ID must be set on InterstitialAd before loadAd is called. at com.google.android.gms.internal.bi.w(Unknown Source) at com.google.android.gms.internal.bi.v(Unknown Source) at com.google.android.gms.internal.bi.a(Unknown Source) at com.google.android.gms.ads.InterstitialAd.loadAd(Unknown Source) at template.maintemplate.sover.onCreate(sover.java:97) at android.app.Activity.performCreate(Activity.java:5933) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)             at android.app.ActivityThread.access$800(ActivityThread.java:144)             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)             at android.os.Handler.dispatchMessage(Handler.java:102)             at android.os.Looper.loop(Looper.java:135)             at android.app.ActivityThread.main(ActivityThread.java:5221)             at java.lang.reflect.Method.invoke(Native Method)             at java.lang.reflect.Method.invoke(Method.java:372) 

The code I used to request an interstitial is directly beneath the code I use to request a banner (which works):

// Ads... AdView mAdView = (AdView) findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest); // Create the interstitial. interstitial = new InterstitialAd(this); //interstitial.setAdUnitId(AdRequest.DEVICE_ID_EMULATOR); // Create ad request. AdRequest adRequestI = new AdRequest.Builder().addTestDevice("B3EEABB8EE11C2BE770B684D95219").build(); // Begin loading your interstitial. interstitial.loadAd(adRequestI); 

Line 97 is the last line in the example above. I've tried using interstitial.setAdUnitId(AdRequest.DEVICE_ID_EMULATOR) instead of addTestDevice which doesn't throw an error, but also doesn't load the interstitial.

1

2 Answers 2

3

you load your Ad before setting the ID:

AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest);// <-- Here 

remove the first call so you get:

// Create the interstitial. interstitial = new InterstitialAd(this); //interstitial.setAdUnitId(AdRequest.DEVICE_ID_EMULATOR); // Create ad request. AdRequest adRequestI = new AdRequest.Builder().addTestDevice("B3EEABB8EE11C2BE770B684D95219").build(); // Begin loading your interstitial. interstitial.loadAd(adRequestI); 

furthermore ad this method:

// Invoke displayInterstitial() when you are ready to display an interstitial. public void displayInterstitial() { if (interstitial.isLoaded()) { interstitial.show(); } } 
Sign up to request clarification or add additional context in comments.

Comments

0

You must have to set AdUnitId before load Ads

 mAdView = (AdView)findViewById(R.id.adView); mAdView.setAdSize(AdSize.SMART_BANNER); mAdView.setAdUnitId("ca-app-pub-160126019342****/405183****"); AdRequest.Builder adRequestBuilder = new AdRequest.Builder(); adRequestBuilder.addTestDevice("B3EEABB8EE11C2BE770B684D95219ECB"); mAdView.loadAd(adRequestBuilder.build()); 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.