使用Facebook 的 Audience Network广告时,我的应用程序发生了很多崩溃。报告如下:
NullPointerException (@FBInterstitial:InitInterstitialAd:-1) {Thread:main Exception:java.lang.NullPointerException at android.webkit.WebSettingsClassic.getDefaultUserAgentForLocale(WebSettingsClassic.java:453) at android.webkit.WebViewClassic$Factory.getDefaultUserAgent(WebViewClassic.java :1503) android.webkit.WebSettings.getDefaultUserAgent(WebSettings.java:1280) com.facebook.ads.asa(Unknown Source) at com.facebook.ads.asa(Unknown Source) at com.facebook.ads.aj (未知来源)在 com.facebook.ads.akb(未知来源)在 com.facebook.ads.InterstitialAd.loadAd(未知来源)
它发生在facebook InterstitialAd 实例的mInterstitialAd.show();
位置mInterstitialAd
,它调用InterstitialAd
类的 show() 方法。
我还检查了 as 的可空mInterstitialAd
性
if (mInterstitialAd != null && mInterstitialAd.isAdLoaded()) {
mInterstitialAd.show();
}
正如您在尝试展示新广告时看到的错误提示。有这个错误的人知道如何解决吗?
注意:我正在使用AudienceNetwork.jar
文件。从日志看来,包中a
的类方法中的错误s
(请参见下面的代码)com.facebook.ads.a
(在 jar 文件中可用。)
// IntelliJ API Decompiler stub source generated from a class file
// Implementation of methods is not available
package com.facebook.ads.a;
public class s {
private static java.lang.String a;
public static void a(android.webkit.WebView webView, android.webkit.WebViewClient webViewClient, com.facebook.ads.a.r r) { /* compiled code */ }
public static void a(android.webkit.WebView webView) { /* compiled code */ }
public static java.lang.String a() { /* compiled code */ }
public static java.lang.String a(android.content.Context context, com.facebook.ads.a.o o) { /* compiled code */ }
private static java.lang.String a(android.content.Context context, java.lang.String s, java.lang.String s1) { /* compiled code */ }
@android.annotation.TargetApi(17)
private static java.lang.String a(android.content.Context context) { /* compiled code */ }
}
编辑 将其初始化为
mInterstitialAd = new InterstitialAd(mContext, "FaceBookPlacementID");
mInterstitialAd.setAdListener(this);
mInterstitialAd.loadAd();