Если вы посмотрите на строку
setContentView(renderView);
Вы устанавливаете вид содержимого на любой вид отображения. Этот класс расширяет SurfaceView. Это означает, что вы устанавливаете SurfaceView в качестве представления содержимого, а не LinearView или RelativeView.
Если вы сделаете быстрый гугл по запросу "admob and surfaceview", вы можете наткнуться на эту ссылку:
Admob на поверхности
Я заработал это на моем приложении, выполнив следующее:
adView = new AdView(this, AdSize.BANNER, "<enter your admob ID here>");
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
adView.setLayoutParams(lp);
RelativeLayout layout = new RelativeLayout(this);
layout.addView(renderView);
layout.addView(adView);
adView.loadAd(new AdRequest());
setContentView(layout);
//setContentView(renderView);
Мне не нужно было менять макет в XML-файле.
Я провел хороший день, пытаясь понять это. Это сложный вопрос, но я надеюсь, что это поможет.