我为Android编写了一个名为“Trumple Run”的应用程序。就像这个名字所说的那样,它是一个Jump&运行游戏,我想尽快发布它。在此之前,我想从AdMob实施插页式广告。我按照官方指南实施广告,但是当我试图显示添加时,应用程序总是崩溃。以下是我的MainActivity中的一些代码(信息:我删除了与该问题无关的代码;方法addzeigen()从另一个类调用)
public class Main_activity extends Activity {
private InterstitialAd mInterstitial;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //Fullscreen
DisplayMetrics metrics = getResources().getDisplayMetrics(); //Display größe herausfinden
V.Bildbreite = metrics.widthPixels;
V.Bildhöhe = metrics.heightPixels;
addladen();
V.v = new View(this);
setContentView(V.v);
}
public void addladen(){
mInterstitial = new InterstitialAd(this);
mInterstitial.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
AdRequest request = new AdRequest.Builder().build();
mInterstitial.loadAd(request);
}
public void addzeigen(){
if(mInterstitial.isLoaded()){
mInterstitial.show();
addladen();
}
}
我查看了StackTrace以找出问题的原因,这两行表明插页式广告尚未实例化(返回空值)。
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.google.android.gms.ads.InterstitialAd.isLoaded()' on a null object reference
因此我在addladen()方法中添加了一个null checker来防止崩溃。
public void addzeigen(){
if(mInterstitial != null && mInterstitial.isLoaded()){
mInterstitial.show();
addladen();
}
}
但为什么我的插页式对象为空?我没有在addladen()方法中以正确的方式实例化它吗?我已经在互联网上搜索了很长时间,但没有找到任何解决方案,并询问了AdMob的支持,但他们说我应该问这里,因为这是一个实施问题。如何修改我的代码以确保我的插页式广告不为空?如果你能帮助我,我会很高兴的。