android - Android - 整合 facebook 受众网络后崩溃率增加。如何解决?
问题描述
我们在一个月前集成了 FAN,它开始显示崩溃率大幅增加。
我们的应用程序包含横幅广告、插页式广告和原生广告。
以下是有关此崩溃的详细日志:
java.lang.NullPointerException:
at com.facebook.ads.j.d (Unknown Source)
at com.status.activities.VideoDetailActivity$17.a (Unknown Source)
at com.facebook.ads.j$1.a (Unknown Source)
at com.facebook.ads.internal.a$3.a (Unknown Source)
at com.facebook.ads.internal.b.u$1.a (Unknown Source)
at com.facebook.ads.internal.b.t$2.a (Unknown Source)
at com.facebook.ads.internal.b.t$2.a (Unknown Source)
at com.facebook.ads.internal.i.r.b (Unknown Source)
at com.facebook.ads.internal.i.r.a (Unknown Source)
at com.facebook.ads.internal.view.v.a (Unknown Source)
at com.facebook.ads.internal.view.c.c.b.setVideoState (Unknown Source)
at com.facebook.ads.internal.view.c.c.b.onPrepared (Unknown Source)
at android.media.MediaPlayer$EventHandler.handleMessage
(MediaPlayer.java:3021)
at android.os.Handler.dispatchMessage (Handler.java:110)
at android.os.Looper.loop (Looper.java:203)
at android.app.ActivityThread.main (ActivityThread.java:6361)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
(ZygoteInit.java:1063)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:924)
编辑1:
这是来自 VideoDetailActivity 的插页式广告的代码:
interstitialAd = new com.facebook.ads.InterstitialAd(mContext,
getResources().getString(R.string.fb_interstitial_id));
interstitialAd.loadAd();
try {
interstitialAd.setAdListener(new AbstractAdListener() {
@Override
public void onAdLoaded(Ad ad) {
super.onAdLoaded(ad);
String isShow = mFirebaseRemoteConfig.getString("show_vs");
if (isShow.equalsIgnoreCase("true")) {
if (System.currentTimeMillis() - QuotesUtils.getLastSavedDateForAds(mContext) >
Long.parseLong(mFirebaseRemoteConfig.getString("duration"))) {
if (interstitialAd.isAdLoaded())
interstitialAd.show();
QuotesUtils.setLastSavedDateForAds(mContext, System.currentTimeMillis());
}
}
}
});
} catch (Exception e) {
e.printStackTrace();
Crashlytics.log("FBAd>>>" + e.getMessage());
}
以下是 VideoDetailActivity 中横幅广告的代码:
adViewFB = new com.facebook.ads.AdView(mContext,getResources().getString(R.string.fb_banner_id),AdSize.BANNER_HEIGHT_50);
final LinearLayout adContainer =
findViewById(R.id.banner_container);
adContainer.addView(adViewFB);
adViewFB.loadAd();
adViewFB.setAdListener(new AbstractAdListener() {
@Override
public void onAdLoaded(Ad ad) {
super.onAdLoaded(ad);
adContainer.setVisibility(View.VISIBLE);
}
});
解决方案
推荐阅读
- angular - 电容和离子原生状态栏
- python - youtube 上的那个人在 jupyter notebook 中做的 python 代码在 Visual Studio 中对我不起作用
- jenkins - gcloud中的Jenkinsfile管道阶段错误
- java - 在 Spring Boot 中更改上传的 MultipartFile 的编码
- ruby-on-rails - 直接从参数中获取字符串
- sql - 如何在 Powershell ISE 中使用 sqlplus 运行 SQL 文件
- java - 需要从 JAVA 获取 JSON 格式的 Azure 云的 VirtualMachine 元数据
- vue.js - 变异用于不同组件的 Vuex 数组
- node.js - 为什么 axios 向我的 POST 路由发送空数据?
- java - 使用处理和 Opencv 进行像素化人脸跟踪