Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Facebook SDK Android在刷新时出现Logger NullPointerException_Java_Android_Facebook_Nullpointerexception_Event Tracking - Fatal编程技术网

Java Facebook SDK Android在刷新时出现Logger NullPointerException

Java Facebook SDK Android在刷新时出现Logger NullPointerException,java,android,facebook,nullpointerexception,event-tracking,Java,Android,Facebook,Nullpointerexception,Event Tracking,为了便于跟踪,我集成了当前针对Android v3.5的FacebookSDK。 您可以通过调用来跟踪应用程序安装 com.facebook.AppEventsLogger.activateApp(上下文,您的应用程序ID) 到目前为止没有问题,我可以看到这些事件显示在facebook仪表板上。 当涉及到跟踪事件或购买事件时,facebook建议执行以下操作: m_fbAppEventsLogger = com.facebook.AppEventsLogger.newLogger(applica

为了便于跟踪,我集成了当前针对Android v3.5的FacebookSDK。 您可以通过调用来跟踪应用程序安装 com.facebook.AppEventsLogger.activateApp(上下文,您的应用程序ID)

到目前为止没有问题,我可以看到这些事件显示在facebook仪表板上。 当涉及到跟踪事件或购买事件时,facebook建议执行以下操作:

m_fbAppEventsLogger = com.facebook.AppEventsLogger.newLogger(applicationcontext);
m_fbAppEventsLogger.logPurchase(BigDecimal.valueOf(4.99), Currency.getInstance("USD"));
似乎购买事件会立即刷新,从而导致

09-22 15:10:04.680: D/com.facebook.AppEventsLogger(31691): Caught unexpected exception while flushing: java.lang.NullPointerException
如果我尝试发送自定义事件,如果facebook SDK决定刷新其队列中的事件,则会发生相同的错误

我没有发现这种行为,因此非常感谢您的帮助。

您应该添加

对于您的AndroidManifest.xml,我初始化Facebook SDK的方式与文档中给出的示例不同

Facebook建议您定义
元数据android:name=“com.facebook.sdk.ApplicationId
AndroidManifest.xml
中,并在
strings.xml
中为
facebook\u app\u id
硬编码一个值。如果您使用的是源代码管理,那么这些文件通常会被检入,并且作为一般规则,我不喜欢将密钥提交到远程存储库

我使用gradle构建从外部文件中提取一个名为
facebook\u app\u id
的字符串资源。然后,我在初始化facebook SDK时手动定义
facebook\u app\u id
,而不是依赖库来查找它

初始化Facebook SDK

初始化Facebook SDK(支持跟踪安装事件):

初始化Facebook AppEventLogger

随后,我想记录一些。我可以看到Facebook Analytics正在成功跟踪我的安装事件。但是,每次尝试记录事件时,都会返回以下错误:

刷新时捕获到意外异常: java.lang.NullPointerException

对我来说,解决方案是在我的方法调用中再次手动定义
facebook\u app\u id
,以创建AppEventLogger。这为我解决了问题

AppEventsLogger.newLogger(application, application.getString(R.string.facebook_app_id));
另外:启用SDK调试:

在解决这个问题时,我发现从Facebook SDK获得更详细的日志非常有用。您可以使用以下代码对其进行配置:

FacebookSdk.setIsDebugEnabled(true);
FacebookSdk.addLoggingBehavior(LoggingBehavior.REQUESTS);

此方法还有一个优点,即允许您为每种构建类型和/或风格使用不同的facebook应用程序id。

这不会为我删除NPE。您使用的是哪种facebook Android SDK版本?这里还有一个id相同的常量:
AppEventsLogger.newLogger(getApplicationContext(),Consts.FACEBOOK\u APP\u id)我面临同样的问题。你找到解决办法了吗
FacebookSdk.setIsDebugEnabled(true);
FacebookSdk.addLoggingBehavior(LoggingBehavior.REQUESTS);