【发布时间】:2020-11-08 17:17:34
【问题描述】:
我们已经使用 Mopub 6 个月来通过我们的应用获利。我们正在使用一种机制,如果它没有返回原生广告的广告,我们会从网络请求横幅广告。
最近我们看到一个关于横幅广告错误代码的空指针异常。由于网络无法加载广告,因此出现空指针异常。
从 crashlytics 中读取的 logcat :
com.mopub.mobileads.MoPubFullscreen.lambda$preRender$0 (MoPubFullscreen.java:182)
com.mopub.mobileads.-$$Lambda$MoPubFullscreen$3H3zkNFnaPQ4PqCgAa8VbWGmgJs.run (-.java:2)
android.os.Handler.handleCallback (Handler.java:883)
android.os.Handler.dispatchMessage (Handler.java:100)
MoPub 库:5.13.0
我的代码:
public void onNativeFail(NativeErrorCode errorCode) {
if (errorCode != NativeErrorCode.CONNECTION_ERROR) {
if (errorCode == NativeErrorCode.NETWORK_NO_FILL) {
CreateMoPubBannerAd(frameLayout);
} else {
HandleAds(frameLayout); // Loads local ads created by ourselves
}
}
}
public void CreateMoPubBannerAd(FrameLayout frameLayout) {
if(frameLayout == null)
{ frameLayout = findViewById(R.id.adContainerView_button);}
if(moPubView == null)
{ moPubView = findViewById(R.id.mopub_banner); }
moPubView.setLocalExtras(localExtras);
moPubView.setAdUnitId(getString(R.string.twitter_banner_ad_unit_id));
moPubView.loadAd();
FrameLayout finalFrameLayout = frameLayout;
moPubView.setBannerAdListener(new MoPubView.BannerAdListener() {
@Override
public void onBannerLoaded(@NonNull MoPubView banner) {
if(adappName != null)
adappName.setVisibility(View.GONE);
moPubView.setVisibility(View.VISIBLE);
}
@Override
public void onBannerFailed(MoPubView banner, MoPubErrorCode errorCode) {
HandleAds(frameLayout); // Loads local ads created by ourselves}
@Override
public void onBannerClicked(MoPubView banner) { }
@Override
public void onBannerExpanded(MoPubView banner) {}
@Override
public void onBannerCollapsed(MoPubView banner) {}
});
}
感谢您阅读本文,感谢您的帮助
【问题讨论】: