(MoPub 广告网络)尝试调用接口方法 "onAdFailed" 空指针异常
(MoPub Ad Network) Attempt to invoke interface method "onAdFailed" Null Pointer Exception
我们已经使用 Mopub 6 个月来通过我们的应用获利。我们正在使用一种机制,如果 returns 没有原生广告的广告,我们会从网络请求横幅广告。
最近我们看到一个关于横幅广告错误代码的空指针异常。由于网络无法加载广告,因此出现空指针异常。
logcat 从 crashlytics 读取:
com.mopub.mobileads.MoPubFullscreen.lambda$preRender[=11=] (MoPubFullscreen.java:182)
com.mopub.mobileads.-$$Lambda$MoPubFullscreenH3zkNFnaPQ4PqCgAa8VbWGmgJs.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) {}
});
}
感谢您阅读本文,如有任何帮助,我们将不胜感激
此问题在 MoPub SDK 5.13.1 中仍然存在。
我发现这里已经跟踪到了这个问题,会在以后的版本中修复,供大家参考。
https://github.com/mopub/mopub-android-sdk/issues/413
我们已经使用 Mopub 6 个月来通过我们的应用获利。我们正在使用一种机制,如果 returns 没有原生广告的广告,我们会从网络请求横幅广告。
最近我们看到一个关于横幅广告错误代码的空指针异常。由于网络无法加载广告,因此出现空指针异常。
logcat 从 crashlytics 读取:
com.mopub.mobileads.MoPubFullscreen.lambda$preRender[=11=] (MoPubFullscreen.java:182)
com.mopub.mobileads.-$$Lambda$MoPubFullscreenH3zkNFnaPQ4PqCgAa8VbWGmgJs.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) {}
});
}
感谢您阅读本文,如有任何帮助,我们将不胜感激
此问题在 MoPub SDK 5.13.1 中仍然存在。 我发现这里已经跟踪到了这个问题,会在以后的版本中修复,供大家参考。 https://github.com/mopub/mopub-android-sdk/issues/413