首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从facebook注销时android中的社交身份验证nullpointerexception

从facebook注销时android中的社交身份验证nullpointerexception
EN

Stack Overflow用户
提问于 2014-05-09 18:31:39
回答 4查看 672关注 0票数 2

我正在使用社交验证库在android应用程序中与社交媒体进行共享和登录。

我已成功登录并通过facebook进行授权。但当我尝试注销应用程序时,应用程序崩溃,并出现空指针异常

代码语言:javascript
复制
adapter.signOut(getActivity(), Provider.FACEBOOK.toString());

获取以下错误:

代码语言:javascript
复制
05-09 10:24:23.010: E/AndroidRuntime(19998): java.lang.NullPointerException
05-09 10:24:23.010: E/AndroidRuntime(19998): at org.brickred.socialauth.android.SocialAuthAdapter.signOut(SocialAuthAdapter.java:797)

我使用的是最新版本。socialauth-4.4.jar和socialauth-android-3.2.jar

EN

回答 4

Stack Overflow用户

发布于 2015-01-02 21:57:18

请确保从活动中调用。Getactivity() from fragment在像这样从activity调用方法后不工作将工作adapter.signOut( this,Provider.FACEBOOK);

票数 0
EN

Stack Overflow用户

发布于 2015-01-05 00:08:19

我也遇到过类似的问题,这个解决方案适用于我:https://code.google.com/p/socialauth-android/issues/detail?id=108#c16

基本上注销功能有个bug,必须先登录再注销,否则可能会出现NPE。上面的解决方案是在必要时创建一个新的SocialAuthManager。

我建议将源代码作为java模块导入,而不是使用jar文件,这样你就可以自己修复一些东西,比如更改对话框标题文本等。

票数 0
EN

Stack Overflow用户

发布于 2015-04-15 22:22:48

代码语言:javascript
复制
In signOut function put these lines,

if (providerName != null) {
            if (socialAuthManager == null) {
                socialAuthManager = new SocialAuthManager();
                try {
                    loadConfig(ctx);
                } catch (Exception e) {
                    Log.d(" SocialAuthAdapter ", "Could not load configuration");
                }
            }

before 

if (socialAuthManager.getConnectedProvidersIds().contains(providerName)) socialAuthManager.disconnectProvider(providerName);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23562383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档