非页内广告返回空值

时间:2018-01-07 16:26:06

标签: java android null admob interstitial

我为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的支持,但他们说我应该问这里,因为这是一个实施问题。如何修改我的代码以确保我的插页式广告不为空?如果你能帮助我,我会很高兴的。

0 个答案:

没有答案