Facebook Audience Network导致NullPointerException

时间:2015-05-05 13:12:26

标签: java android facebook nullpointerexception facebook-audience-network

我使用Facebook’s Audience Network的广告在我的应用中遇到了很多崩溃。以下是报告:

  

NullPointerException(@FBInterstitial:InitInterstitialAd:-1)   {主题:主   例外:java.lang.NullPointerException at   android.webkit.WebSettingsClassic.getDefaultUserAgentForLocale(WebSettingsClassic.java:453)   在   android.webkit.WebViewClassic $ Factory.getDefaultUserAgent(WebViewClassic.java:1503)   在   android.webkit.WebSettings.getDefaultUserAgent(WebSettings.java:1280)   在com.facebook.ads.a.s.a(未知来源)at   com.facebook.ads.a.s.a(未知来源)at   com.facebook.ads.a.j。(未知来源)at   com.facebook.ads.a.k.b(未知来源)at   com.facebook.ads.InterstitialAd.loadAd(未知来源)

它发生在mInterstitialAd.show();,其中mInterstitialAd是facebook InterstitialAd的实例,它调用InterstitialAd类的show()方法。

我也检查了mInterstitialAd的可为空性

  if (mInterstitialAd != null && mInterstitialAd.isAdLoaded()) {
      mInterstitialAd.show();
    }

在尝试展示新广告时,您可以看到错误提示。有错误的人知道怎么解决吗?

注意:我正在使用AudienceNetwork.jar文件。而在日志中,似乎as的方法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();

1 个答案:

答案 0 :(得分:1)

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

但是我们可以使用try / catch来支持来自SDK的调用,该调用具有后退功能以便以不同的方式获取UA。明天会推出一个修补程序。如果您仍然在4.1.1中看到问题,请报告。