Admob с сбоем Surfaceview

Я хочу добавить объявление Admob Banner с помощью SurfaceView, но оно дает исключение NullPointerException. Вот код:

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)

строка 52: mAdView.loadAd(adRequest);


person user3557576    schedule 02.03.2017    source источник


Ответы (1)


У вас еще нет этого представления в вашем макете, поэтому найдите Adview в своем LinerLayout.

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

Редактировать:

Вы также можете переместить вызов setContentView сразу после создания LinearLayout:

ll = new LinearLayout(this);
setContentView(ll);
person peterchaula    schedule 02.03.2017
comment
Спасибо, это очень помогло найти мою ошибку, на самом деле я также создал рекламный баннер в формате xml. Я удалил его из xml и попробовал с кодом, и это сработало - person user3557576; 03.03.2017