2017-03-02 96 views
1

我想與SurfaceView添加AdMob聯播橫幅廣告,但它給人的NullPointerException, 這裏是代碼:AdMob後Surfaceview崩潰

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是延伸SurfaceView並實現SurfaceHolder

錯誤說一個類:

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);

回答

1

您的佈局中沒有該視圖,因此請在LinerLayout中找到Adview

mAdView = (AdView) ll.findViewById(R.id.adView); 

編輯:

您也可以將您的通話setContentView只是爲了您已經創建了LinearLayout後:

ll = new LinearLayout(this); 
setContentView(ll); 
+0

謝謝,這幫助了很多找我的錯,其實我創建橫幅廣告也在xml中。我從xml中刪除它,並嘗試用代碼,它的工作 – user3557576