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!"); }
我希望这有助于其他人……
- 来自URL的Android位图始终为null
- 如何在设备轮换时保持地图状态?
- Android错误:找不到符号类LocationClient
- Jmockit:不能模拟net.android.Uri类的toString方法
- get JSONException:解析JSON响应时,无法将java.lang.String类型的值转换为JSONObject
- 使用Collections.sort对自定义类数组列表字符串进行排序
- Android 4.0 – > 4.3(包含) – Webview页面之间的Web存储丢失
- 使用KeyGenParameterSpec.Builder等效替换KeyPairGeneratorSpec – 密钥库操作失败
- 根据国家/地区获取货币符号