Reputation: 27
I want to add Admob Banner ad with SurfaceView but it gives NullPointerException, Here is code:
private AdView mAdView;
private LinearLayout ll;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ll = new LinearLayout(this);
mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.build();
mAdView.loadAd(adRequest);
ll.addView(mAdView);
ll.addView(new GamePanel(this));
setContentView(ll);
}
GamePanel is a class that extends SurfaceView and implements SurfaceHolder
Error says:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)' on a null object reference
at com.example.binnat.zigzag.MainActivity.onCreate(MainActivity.java:54)
line 52: mAdView.loadAd(adRequest);
Upvotes: 1
Views: 55
Reputation: 3711
You don't have that view in your layout yet so find the Adview
in your LinerLayout.
mAdView = (AdView) ll.findViewById(R.id.adView);
Edit:
You can also move your setContentView
call just to after you've created your LinearLayout
:
ll = new LinearLayout(this);
setContentView(ll);
Upvotes: 1