Question

I have the following code in my app:

AdView ad;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ad = new AdView(this);
    ad.setAdSize(AdSize.SMART_BANNER);
    ad.setAdUnitId("left out from question");
    RelativeLayout layout = (RelativeLayout)findViewById(R.id.layout);
    layout.addView(ad);
    AdRequest.Builder adRequestBuilder = new AdRequest.Builder();
    ad.loadAd(adRequestBuilder.build());
    setContentView(R.layout.activity_main);

}

And I keep getting a null pointer exception on the line where I add my adView to my Linear Layout. What could be the issue here? My LogCat is posted below:

11-25 19:55:46.035: E/AndroidRuntime(346): FATAL EXCEPTION: main
11-25 19:55:46.035: E/AndroidRuntime(346): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.adtest/com.example.adtest.MainActivity}: java.lang.NullPointerException
11-25 19:55:46.035: E/AndroidRuntime(346):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
11-25 19:55:46.035: E/AndroidRuntime(346):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-25 19:55:46.035: E/AndroidRuntime(346):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-25 19:55:46.035: E/AndroidRuntime(346):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-25 19:55:46.035: E/AndroidRuntime(346):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-25 19:55:46.035: E/AndroidRuntime(346):  at android.os.Looper.loop(Looper.java:123)
11-25 19:55:46.035: E/AndroidRuntime(346):  at android.app.ActivityThread.main(ActivityThread.java:4627)
11-25 19:55:46.035: E/AndroidRuntime(346):  at java.lang.reflect.Method.invokeNative(Native Method)
11-25 19:55:46.035: E/AndroidRuntime(346):  at java.lang.reflect.Method.invoke(Method.java:521)
11-25 19:55:46.035: E/AndroidRuntime(346):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-25 19:55:46.035: E/AndroidRuntime(346):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-25 19:55:46.035: E/AndroidRuntime(346):  at dalvik.system.NativeStart.main(Native Method)
11-25 19:55:46.035: E/AndroidRuntime(346): Caused by: java.lang.NullPointerException
11-25 19:55:46.035: E/AndroidRuntime(346):  at com.example.adtest.MainActivity.onCreate(MainActivity.java:21)
11-25 19:55:46.035: E/AndroidRuntime(346):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-25 19:55:46.035: E/AndroidRuntime(346):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-25 19:55:46.035: E/AndroidRuntime(346):  ... 11 more
Was it helpful?

Solution

Try replacing

RelativeLayout layout = (RelativeLayout)findViewById(R.id.layout);
layout.addView(ad);
AdRequest.Builder adRequestBuilder = new AdRequest.Builder();
ad.loadAd(adRequestBuilder.build());
setContentView(R.layout.activity_main);

with

setContentView(R.layout.activity_main);
RelativeLayout layout = (RelativeLayout)findViewById(R.id.layout);
layout.addView(ad);
AdRequest.Builder adRequestBuilder = new AdRequest.Builder();
ad.loadAd(adRequestBuilder.build());

you were trying to access R.id.layout before setContentView which will result in nullpointerexception

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top