6

我在我的应用程序中集成了适用于 android v3.5 的 Facebook SDK,并包含了安装发布代码:

com.facebook.AppEventsLogger.activateApp(this);

但是我收到了很多由以下原因引起的崩溃:

Settings.java line 418
com.facebook.Settings.getAttributionId

它抛出异常:

java.lang.IllegalStateException: Orca SharedPreferences used before initialized

我一直在尝试重现崩溃,但没有成功。有人遇到过这个问题吗?我只想知道是否:

/* Only activate FaceBook publish install if the user has the FaceBook app installed */
if (com.facebook.Settings.getAttributionId(getContentResolver()) != null){
    com.facebook.AppEventsLogger.activateApp(this);
}

这会解决问题吗?谢谢!

4

1 回答 1

7

我们最终通过捕获异常并避免未安装 facebook 应用程序的设备被激活来解决此问题。一位 Facebook 开发人员回答了我们:

“用户需要在他们的设备上安装 Facebook Android 应用并登录才能使 activateApp 正常运行。”

这是我们最终使用的代码,它不再崩溃:

try{
        /* Only activate FaceBook publish install if the user has the FaceBook app installed */
        if (com.facebook.Settings.getAttributionId(getContentResolver()) != null){
        com.facebook.AppEventsLogger.activateApp(this);
        }
    } catch (IllegalStateException e){
        Log.d(TAG, "Facebook Setting Exception again!");
    }

我希望这对其他人有帮助...

于 2013-09-24T08:28:03.120 回答