1

使用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();
4

1 回答 1

1

看起来与此问题非常相似:https ://groups.google.com/forum/#!topic/google-admob-ads-sdk/SX9yb3F_PNk

但是我们可以用一个 try/catch 来包围来自我们 SDK 的调用,它有一个回退以以不同的方式获取 UA。明天会出一个补丁。如果您仍然在 4.1.1 中看到问题,请报告。

于 2015-05-06T00:13:04.187 回答