Facebook Audience Network 导致 NullPointerException
Posted
技术标签:
【中文标题】Facebook Audience Network 导致 NullPointerException【英文标题】:Facebook Audience Network cause NullPointerException 【发布时间】:2015-05-05 13:12:25 【问题描述】:我使用来自Facebook’s Audience Network 的广告在我的应用程序中遇到了很多崩溃。报告如下:
NullPointerException (@FBInterstitial:InitInterstitialAd:-1) 线程:主 异常:java.lang.NullPointerException 在 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(未知来源) com.facebook.ads.a.s.a(未知来源)在 com.facebook.ads.a.j.(未知来源)在 com.facebook.ads.a.k.b(未知来源)在 com.facebook.ads.InterstitialAd.loadAd(来源不明)
它发生在mInterstitialAd.show();
,其中mInterstitialAd
是facebook InterstitialAd 的实例,它调用InterstitialAd
类的show() 方法。
我还检查了mInterstitialAd
的可空性
if (mInterstitialAd != null && mInterstitialAd.isAdLoaded())
mInterstitialAd.show();
正如您在尝试展示新广告时看到的错误提示。有这个错误的人知道如何解决吗?
注意:我正在使用AudienceNetwork.jar
文件。从日志看来,s
类的方法a
中的错误(见下面的代码)在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();
【问题讨论】:
NullPointer 表示你初始化了吗? 是的,mInterstitialAd.show();
的空指针,我也解释了日志。
您使用的是什么版本的受众网络/SDK?
@MingLi 我正在使用来自 SDK 版本 v4.1.0
的 jar 文件,并按照 developers.facebook.com/docs/audience-network/… 中给出的步骤进行操作
你解决了吗?
【参考方案1】:
看起来与这个问题非常相似:https://groups.google.com/forum/#!topic/google-admob-ads-sdk/SX9yb3F_PNk
但是我们可以在来自 SDK 的调用周围加上一个 try/catch,它具有回退以以不同的方式获取 UA。明天会出一个补丁。如果您在 4.1.1 中仍然发现问题,请报告。
【讨论】:
是的,没错。但是有什么解决办法,更新SDK请回复。 不幸的是,我认为您无法在 SDK 之外直接解决此问题,但 4.1.1 现已推出。如果您仍然看到问题,请告诉我:developers.facebook.com/docs/android 好的,我会用新的 sdk 版本更新我的应用程序,如果这个问题没有问题,我会接受。到那时 +1。 @JennyAbrahamson 他们是解决同一问题的任何方法吗?以上是关于Facebook Audience Network 导致 NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章
Facebook Audience Network 导致 NullPointerException
Facebook Audience Network:需要 Facebook 登录吗?
原生 Facebook Audience Network 广告不可点击