Это простой случай пропуска объекта context' required while creating the
InterstitialAd `.
Есть одна вещь, которую вы можете сделать, довольно простая и понятная.Вот ваш код в общем виде.
public class ClassAds{
private InterstitialAd mInterstitialAd;
private Context mContext;
public ClassAds(Context context){
//this is the constructor of this class
mContext = context;
}
public InterstitialAd getMobileAds(){
mInterstitialAd = new InterstitialAd(mContext);
mInterstitialAd.setAdUnitId("ca-app-pub-.............");
return mInterstitialAd;
}
также в соответствии с документацией создайте версию своего собственного класса Application и инициализируйте SDK только один раз за запуск приложения.Прочитайте docs
Чтобы создать собственное приложение, прочитайте Здесь
создайте окончательную строковую переменную с идентификатором SDK, подобным этому, в классе приложений
private static final String _ad_id = "YOUR_ADMOB_APP_ID";
затем инициализируйте SDK следующим образом в onCreate
класса Application.
@Override
public void onCreate() {
super.onCreate();
MobileAds.initialize(activity, _ad_id );
}
затем из любого действия или класса используйте его следующим образом.
ClassAds adsObject = new ClassAds(this)//here this is the context Activity
adsObject.getMobileAds();
Хотя вы делаете этот класс синглтоном и используете его в нескольких действиях, если AdUnitId остается тем же.Изучите возможности!
Если вы пропустили, я думаю, вы точно этого не сделали, здесь является официальным руководством по загрузке рекламы.