MoPub广告网络Banner广告ErrorCode空指针异常问题求助
我们团队使用MoPub广告网络做应用变现已经6个月了,采用的策略是原生广告无填充时自动请求Banner广告。但近期遇到了棘手的问题:当Banner广告加载失败时,会触发与ErrorCode相关的空指针异常,目前通过Crashlytics捕获到的日志如下:
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) {} }); }
恳请各位帮忙分析这个空指针异常的根源,以及给出对应的解决思路,非常感谢!
内容的提问来源于stack exchange,提问作者Eren Tüfekçi




