java.lang.IllegalStateException: Orca SharedPreferences used before initialized

谁说胖子不能爱 提交于 2019-12-06 01:41:33

问题


I have integrated the Facebook SDK for android v3.5 in my app and included the install publishing code:

com.facebook.AppEventsLogger.activateApp(this);

But I am receiving a lot of crashes caused by:

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

and it's throwing the exception:

java.lang.IllegalStateException: Orca SharedPreferences used before initialized

I have been trying to reproduce the crash with no success. Has anybody encountered this issue? I just want to know if:

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

this would fix the problem? Thanks!


回答1:


We finally fixed this issue by catching the exception and avoiding that devices without an installed facebook app got activated. A facebook developer answered us:

"The user needs to have the Facebook Android app installed on their device and logged in for activateApp to function properly."

This is the code we finally used and it isn´t crashing anymore:

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

I hope this helps others...



来源:https://stackoverflow.com/questions/18873794/java-lang-illegalstateexception-orca-sharedpreferences-used-before-initialized

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!