java.lang.IllegalStateException:初始化之前使用的Orca SharedPreferences

时间:2013-09-18 13:39:01

标签: java android sharedpreferences facebook-sdk-3.0 orca

我已经在我的应用程序中集成了面向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);
}
这会解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分: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!");
    }

我希望这有助于其他人......