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

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

com.facebook.AppEventsLogger.activateApp(this); 

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

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

并且它抛出exception:

 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); } 

这会解决问题吗? 谢谢!

我们最终通过捕获exception并避免没有安装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!"); } 

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