sharesdk怎样微信获取用户授权授权后的用户信息

君,已阅读到文档的结尾了呢~~
ios sharesdk sharesdk ios5 i..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
使用ShareSDK实现用户第三方登录-IOS
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口iOS-无处不在,详解iOS集成第三方登录(SSO授权登录&无需密码&)_iOS开发_
iOS-无处不在,详解iOS集成第三方登录(SSO授权登录&无需密码&)
来源:人气:1016
不多说,第三登录无处不在!必备技能,今天以新浪微博为例。
这是上次写的iOS第三方社交分享:
可以和今天的一起集成使用。
2.集成前的准备工作  
2.1.去ShareSDK(现为Mob)注册帐号,下载SDK,然后添加自己的应用后得到AppKey  
下载地址:
2.2.申请第三方登录的Appkey  
例如: 新浪微博、腾讯微博、、微信、豆瓣应用、人人网、QQ空间
去各大社交网站的开发者平台,进行注册,添加应用即可得到。
获取如下:
2.3.前往Parse用户注册并下载SDK。
3.集成shareSDK  
3.1.导SDK  
选中工程项目进入&Build Phases&在&Link Binary With Libraries&中点击&+&号,按照ShareSDK的集成文档与Parse的文档说明把需要引入的库加入到项目中
3.2.注册ShareSDK  
&3.3.添加要集成的第三方登录平台  
注意: 新浪微博需要提供回调地址才行
回调地址去新浪开发者平台获取
[ShareSDK connectSinaWeiboWithAppKey:@""
appSecret:@"6ce8dba1a8baa"
redirectUri:@""];
redirectUri 要和开发平台的回调页面相同
3.4.&、在 - (BOOL): didFinishLaunchingWithOptions:注册ShareSDK、添加集成平台、注册Parse  
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
// Override point for customization after application launch.
[ShareSDK registerApp:@"288fe15ac67e"];
//参数为ShareSDK官网中添加应用后得到的AppKey
//Parse Key
[Parse setApplicationId:@"gKROXKemyAYT1JEQPwFjcuNRL7qPLguXpYWS1qb9"
clientKey:@"U48G8pla1trx8voPeOpH8Hts9QN475g27STuxuWo"];
///新浪微博:
//App Key:
//App Secret:6ce8dba1a8baa
//腾讯微博:
//App key:
//App secret:58c55f572d5ae35e0c355f4c0ee11283
//分享内容URL
[ShareSDK connectSinaWeiboWithAppKey:@""
appSecret:@"6ce8dba1a8baa"
redirectUri:@""];
//新浪微博
//App Key:
//App Secret:882c8e9b920b65dac4ac
//添加腾讯微博应用
[ShareSDK connectTencentWeiboWithAppKey:@""
appSecret:@"ae36f4ee3946e1cbb98dff5c"
redirectUri:@""];
//添加豆瓣应用
[ShareSDK connectDoubanWithAppKey:@"07d08fbfcaf3f43632bb9"
appSecret:@"ebe91"
redirectUri:@"/braininference/infos."];
//添加人人网应用
[ShareSDK connectRenRenWithAppKey:@"fc5b8aed373c4c27a05b712acba0f8c3"
appSecret:@"f29df781abdd4f49beca5a"];
//添加Facebook应用
[ShareSDK connectFacebookWithAppKey:@"179"
appSecret:@"a5fe26c80cb573"];
return YES;
其中传入ShareSDK的参数则是之前创建应用的AppKey,而Parse的ApplicationId和clientKey可在应用信息面板中获取。
3.5.实现SSO授权(SSO授权登录&无需用户输入密码登录&)  
注意:每个第三方客户端的SSO授权方法不同:
详情可查看
/iOS配置SSO授权
//(新浪微博)例:在AppDelegate添加2个方法:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
return [ShareSDK handleOpenURL:url wxDelegate:nil];
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
return [ShareSDK handleOpenURL:url
sourceApplication:sourceApplication
annotation:annotation
wxDelegate:nil];
打开*-Info.plist(*代表你的工程名字)。找到URL types配置项(如果没有则新增),展开URL types & URL Schemes,在URL Schemes下分别各新增一项用于新浪微博的Scheme(如果不添加则会导致法返回应用)。其填写格式为:wb+appKey(你在新浪微博申请的AppKey), 如:wb。如图所示:
3.6.拖一个按钮,在按钮的点击事件实现第三方登录  
3.7.注册登录成功后,可以登录Parse 查看数据已经成功写入,如图:  
3.8.最后来一个注销按钮即可,返回登录界面  
- (void)logoutButtonClickHandler:(id)sender
[ShareSDK cancelAuthWithType:ShareTypeSinaWeibo];
[self.navigationController popViewControllerAnimated:NO];
作者:&清澈Saup出处:本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。&
优质网站模板android中ShareSDK使用步骤
第一步 :获取ShareSDK
为了集成ShareSDK,您首先需要到ShareSDK官方网站注册并且创建应用,获得ShareSDK的Appkey,然后到SDK的下载页面下载SDK的压缩包,解压以后可以得到如下图的目录结构:
ShareSDK在“ShareSDK for Android”目录下,此目录中的“Libs”包含“MainLibs”和“OnekeyShare” 分别是ShareSDK的核心库和“快捷分享”的源码库,说明文档也在“ShareSDK for Android”目录下,集成ShareSDK前请务必仔细阅读。 “ShareSDK for Android
ApiDoc”包含Mainlibs和OnekeyShare的JavaDoc,供开发者开发时查阅。 “ShareSDK for Android Sample”包含ShareSDK的功能演示代码和apk文件,Sample源码的JavaDoc在[1]中。
“ShareSDK for Android Services”包含ShareSDK已经发布的“插件服务”,暂时我们只提供了“评论与赞”服务,压缩包中已经提供了此插件服务的依赖库、示例代码、JavaDoc和apk文件。
第二步:导入ShareSDK
ShareSDK有三种集成方式:
1、直接jar包到目标项目libs目录&直接jar和资源的方式,可以参考ShareSDK的Sample项目。 使用jar的方法,需要除了MainLibs/libs中的jar外,还需要MainLibs/res中图片和strings,否则会出现授权时找不到资源的问题。 而且如果您的项目也集成了快捷分享,还需要OneKeyShare/src中的源码、OneKeyShare/res中的资源,如果你的项目里没有android-support-v4的jar需要把OneKeyShare/libs下的android-support-v4的jar到您的项目中。
2、快速生成项目
由于直接jar包和资源的集成方式比较麻烦,ShareSDK提供了快速集成的程序,在Windows下可以直接双击执行,或Linux/Mac OS下通过终端启动执行&这个程序会自动搜集集成SDK所需要的jar和资源,完成以后可以通过目标目录中的文件到您项目中覆盖就行了。 极大简化了“直接jar和资源”这种集成方式的操作步骤。&对于你的项目是刚开发或者想写一个Demo测试ShareSDK功能,可以使用这种方法快速集成
3、项目引用&下面演示如何通过项目引用的方式集成ShareSDK:&1)将ShareSDK下的Libs目录解压,然后在Eclipse中,选择“File”-&“Import”,并选择“Existing
Projects into Workspace”:
并在“下一步”的页面中,选择上文的解压目录:
点击“确定”,Eclipse会自动找到“OnekeyShare”、“Sample”、“ShareSDK(即MainLibs)”、“Socialization(即评论与赞的依赖项目)”和“SocializationSample”目录下的两个项目。
如果您不需要快捷分享功能,可以取消OneKeyShare项目的勾选,如果您不需要集成评论与赞服务,可以取消Socializaion项目的勾选。否则请按“确定”,导入项目。 下面简单说明MainLibs和OnekeyShare的集成,Socializaion的集成类似于OnekeyShare,将在后文详细说明。 2)被导入的三个项目默认是“Is
Labrary”的,而且OneKeyhare也默认引用了ShareSDK(即MainLibs),所以您并不需要为这两个项目做更多的设置。但是如果您修改了它们的相对路径,使之不在同一目录下,则需要手动修改其引用方式。具体操作和下面步骤类似。
3)右键您的项目,选择“properties”。在弹出的窗口左侧选择“Android”,然后转至右下侧的“Library”中点击“Add”,分别选择“MainLibs”和“OneKeyhare”,然后保存设置,退出属性窗口。
完成上述步骤,“刷新”并“清理”一下您的项目&若提示错误&解决办法:Onekeyshare和Sharesdk在项目的根目录里的project.properties配置文件里设置了target=android-8,如果没有此版本的Adnroid SDK请修改你有的Android SDK版本后保存。项目的编码格式为UTF-8。
接下来就是配置不同平台的应用信息和注册授权以及快捷分享的Activity了。 对于1.2.0以前已经集成ShareSDK,现在要升级的开发者,可以参考“jar和资源文件”的方式来升级SDK,也可以将您libs中对ShareSDK所引用的jar删除,然后依照上述的步骤重新引用。由于ShareSDK 2.x并不兼容1.x的版本,因此会有一些代码需要改动。主要的修改原则是将所有包含“Weibo”名称的字段和方法,以“Platform”来替换;AbstractWeibo被拆分为两个,对于ShareSDK而言的静态方法被分配到类ShareSDK中,其他的和具体平台操作有关的成员,被分配到类Platform中。更多的详细内容,可以参考我们Wiki上的升级指南。
ShareSDK的快捷分享只提供源码,并没有编译好的jar。MainLibs的libs目录中包含的是ShareSDK的核心类库,不同的jar对应不同的平台,其对应关系可以参考后文的平台对应列表。对于大部分的开发者,这些平台并不都是需要的,这时候可以直接删除此目录下不需要平台的jar包即可,直到后续需求变更,需要添加新的平台,再新平台的jar到此目录下就行了。
第三步:添加应用信息
有三种方式&第一种:在ShareSDK的应用管理后台中配置,使用此方法需要调用ShareSDK.initSDK(context,你的应用在sharesdk注册时返回的AppKey)方法进行初始化,如果以后更改了注册信息可以直接从网上更改,而不用重新发布新版本进行更新。(优先级最高)。
第二种:通过代码配置“setPlatformDevInfo(String, HashMap&String, Object&)”方法,使用此方法需要调用ShareSDK.init(context,你的应用在sharesdk注册时返回的AppKey)方法进行初始化。(优先级中)。 第三种:通过“assets/ShareSDK.xml”文件来配置,次方式会以明文存在,但这种方式最为简单。(优先级最低)。
这三种方式开发者可以自行选择,不过这三种设置方式各有区别:第一种方式可以实现“动态配置应用信息”的功能,但是一旦脱离网络,ShareSDK可能无法运作;第三种方式是优先级最低的方式,但是它最为方便、集中;最后使用代码设置的方式是最灵活的方式,第二种方式开发者可以在代码里面写死应用信息,也可以通过私有协议,从自己的服务器上动态获取应用注册信息,其优先级居第一种和第二种之间。&使用ShareSDK.xml配置注册信息示例
123456789ShareSDK.xml以XML格式存储数据,每一个平台一个块,除了社交平台外,开发者在ShareSDK注册应用时得到的Appkey需要填写在块“ShareSDK”中,如果此Appkey不是开发者自己的Appkey,则将来在ShareSDK应用后台的统计数据将不正确。ShareSDK的每一个平台都具备SortId、Id、Enable四个字段,除此之外的字段(如浪新微博的AppKey、AppSecret、RedirectUrl、ShareByAppClient等字段)需要到目标平台上注册应用以后得到,请正确填写这些字段的数据,否则ShareSDK无法完成授权,则后续的其它操作也将无法执行。代码配置注册信息示例(演示初始化浪新微博配置信息)&因为各个分享平台可以设置的配置信息不同,具体分享平台需要设置哪些配置信息请参考sample里的ShareSDK.xml配置文件
方法需要在Sharesdk.initSDK()方法后调用,如果调用了ShareSDK.stopSDK()需要在ShareSDK.initSDK后重新调用ShareSDK.setPlatformDevInfo()方法。 关于应用信息不同字段的更详细解释,可以参考ShareSDK.xml文件头部的说明。
第四步:配置AndroidManifest.xml
不同的集成度需要在AndroidManifest.xml中添加的内容不一样。但是首先您需要添加下面的权限列表:
1这些权限将允许您的项目和ShareSDK判断当前应用是否“前置”、获取连接网络的权限、获取您的设备网络状态的权限、实现https安全连接的权限、读取手机设备状态的权限和保存必要配置的权限。一般来说,即便不集成ShareSDK,大部分的项目也都会注册申请这些权限。其次,为了授权操作可以顺利完成,需要在application下注册下面的Activity:&ShareSDKUIShell的路径是固定的,一定要在“cn.sharesdk.framework”下,因为它在Share-Core中。
如果您的项目集微信或者微信朋友圈,请查看AndroidManifest.xml配置文件里的package路径,需要在package目录下创建wxapi目录再放置WXEntryActivity。 没有此activity在微信分享后回调会检查是否有此activity,没有将会报错。
123456而如果您的项目集易信的两个平台,请查看AndroidManifest.xml配置文件里的package路径需要在package目录下创建yxapi目录在放置回调Activity:
这两个类的路径是需要根据您项目的包名来确定,如果路径错误,您将收不到微信和易信客户端的操作回调,因此ShareSDK也无法给予您操作回调。为了避免出错,请使用相对路径的方式,直接上面的代码到您的AndroidManifest.xml中即可。
第五步:添加代码
打开您项目的入口Activity,在其onCreate中插入下面的代码: 如果使用ShareSDK.xml方式配置调用
ShareSDK.initSDK(this);
如果使用代码配置应用注册信息或者应用后台配置应用注册信息,调用
ShareSDK.initSDK(this,”androidv1101″);
androidv1101:是你的应用在ShareSDK注册应用信息时返回的AppKey。 代码会初始化ShareSDK,此后对ShareSDK的操作都以此为基础。如果不在所有ShareSDK的操作之前调用这行代码,会抛出空指针异常。
完成SDK初始化以后,就可以调用授权、获取资料、分享等操作了,详细的使用方法,请参考:
1、授权与取消授权
2、获取授权用户资料
3、第三方登陆
4、任意api调用
> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a),谢谢支持! 简介: 有的项目需要在Android中加入Unity功能,例如ANDROID应用中嵌入Unity3D视图(展示3D模型) 有的项目需要在Unity中加入Android功能,例如3D语音天气球(源码分享)--创建可旋转的3D球 由于Android中的功 ...
我们都遇到过这样的情况,当点开某个app时,当软件有更新时,它会弹出一个对话框,提示你是否需要更新,可以选择&更新&或&不更新&:当前软件已经是最高版本时,则不会弹出这样的升级提示.今天就来说说软件升级的具体流程. 流程: 1) 首先来说弹出提示对话框的方式,应该是Dialog,而不能是Ttoast虽然也有提 ...
Android中手机震动的设置(Vibrator)的步骤: a.通过系统服务获得手机震动服务,Vibrator vibrator = (Vibrator)getSystemService(VIBRATOR_SERVICE);
b.得到震动服务后检测vibrator是否存在: vibrator.hasVibrator(); 检测当前硬件是否有vibr ...
Android中手机声音调节步骤: a.通过系统服务获得声音管理器: AudioManager audioManager =
(AudioManager)getSystemService(Service.AUDIO_SERVICE); b.根据实际需要调用适当的方法:(常用方法) audioManager.adjustStreamVolume(int st ...
在安卓开发中,总有那么一些看似简单,实则绊脚的难题,等你去探索,等你去解决,也许你已经遇见了解决了,也许你还没碰上,写下这篇总结,希望能帮助那行即将遇到的朋友,快速解决这些小问题! 一.activity中的PopupWindow. 之前在使用popupwindow的时候并未注意到这个问题,知道有一次偶然发现讲fragment中的弹窗移植到activity中时 ...
在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中.实现步骤:调用ListView的setOnScrollListener()方法设置滑动监听器,实现OnScrollListener接口的方法,判断当列表滑动到最低端时,加载新的列表项.其中OnScrollL ...
XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能.今天就由我向大家介绍一下在Android平台下几种常见的XML解析和创建的方法. 在Android中,常见的XML解析器分别为SAX解析器.DOM解析器和PULL解析器,下面,我将一一向大家详细介绍. SAX解析器: SAX ...
参考文章 : http://blog.csdn.net/liuhe688/article/details/6532519
在Android中实现异步任务机制有两种方式,Handler和AsyncTask.
Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过 ...09:56 提问
请大神指教!shareSDK第三方登录,返回了用户登录信息,但是一直报空指针异常,可是有返回值
这是我的代码,先点击一个图片按钮,然后跳转到授权界面,当授权完成的时候,再把值返回在这个类里面,但是运行的时候一直报这句left_menu_fragment_textview.setText(userInfo.getUserName());是空指针异常,这是怎么回事
public class LeftMenuFragment extends BaseFragment {
private ImageButton left_menu_fragment_
private ListView left_menu_fragment_
private String[] itemname = new String[] { "设置文字大小", "收藏", "检查更新" };
/************************************ 后面增加的方法 **********************************************/
private OnLoginListener signupL
private String pictureP
private UserInfo userInfo = new UserInfo();
/** 加载用户icon */
private static final int LOAD_USER_ICON = 2;
/** 图片名字 */
private static final String PICTURE_NAME = "userIcon.jpg";
private TextView left_menu_fragment_
/**********************************************************************************/
public View initview() {
View view = View.inflate(mActivity, R.layout.left_menu_fragment, null);
left_menu_fragment_imagebutton = (ImageButton) view
.findViewById(R.id.left_menu_fragment_imagebutton);
left_menu_fragment_listview = (ListView) view
.findViewById(R.id.left_menu_fragment_listview);
left_menu_fragment_textview = (TextView) view
.findViewById(R.id.left_menu_fragment_textview);
left_menu_fragment_listview.setAdapter(new myListAdapter());
left_menu_fragment_imagebutton
.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.i("pan", "已经点击跳转界面");
Intent intent = new Intent();
intent.setClass(mActivity,
AuthorizationLoginActivity.class);
mActivity.startActivity(intent);
* 初始化数据
public void initData() {
if (platform != null) {
userInfo.setUserIcon(platform.getDb().getUserIcon());
userInfo.setUserName(platform.getDb().getUserName());
Log.i("pan", "leftMenuFragment中的username" + userInfo.getUserName());
Log.i("pan", "leftMenuFragment中的icon" + userInfo.getUserIcon());
if (userInfo.getUserName() != null) {
Log.i("pan", "leftMenuFragment中的username222222" + userInfo.getUserName());
left_menu_fragment_textview.setText(userInfo.getUserName());
if (!TextUtils.isEmpty(userInfo.getUserIcon())) {
Log.i("pan", "执行进入了获取icon方法吗");
loadIcon();
// 初始化照片保存地址
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
String thumPicture = Environment.getExternalStorageDirectory()
.getAbsolutePath()
+ mActivity.getPackageName()
+ "/download";
File pictureParent = new File(thumPicture);
File pictureFile = new File(pictureParent, PICTURE_NAME);
if (!pictureParent.exists()) {
pictureParent.mkdirs();
if (!pictureFile.exists()) {
pictureFile.createNewFile();
} catch (Exception e) {
e.printStackTrace();
picturePath = pictureFile.getAbsolutePath();
Log.e("picturePath ==&&", picturePath);
Log.e("change user icon ==&&", "there is not sdcard!");
// Bundle bundle = mActivity.getIntent().getExtras();
// if (bundle != null) {
// Log.i("pan", "LeftMenuFragment中的res值:" + bundle.get("myMap"));
// Map&String, Object& hashmap = (Map&String, Object&)
// bundle.getSerializable("myMap");
// String name = (String) hashmap.get("nickname");
// Log.i("pan", "LeftMenuFragment中的res值:" + hashmap);
// Log.i("pan", "LeftMenuFragment中的name值:" + name);
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case LOAD_USER_ICON:
left_menu_fragment_imagebutton.setImageURI(Uri
.parse(picturePath));
* 加载头像
public void loadIcon() {
final String imageUrl = platform.getDb().getUserIcon();
new Thread(new Runnable() {
public void run() {
URL picUrl = new URL(imageUrl);
Bitmap userIcon = BitmapFactory.decodeStream(picUrl
.openStream());
FileOutputStream b =
b = new FileOutputStream(picturePath);
pressFormat.JPEG, 100, b);// 把数据写入文件
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
b.flush();
b.close();
} catch (IOException e) {
e.printStackTrace();
userInfo.setUserIcon(picturePath);
Message msg = new Message();
msg.what = LOAD_USER_ICON;
// UIHandler.sendMessage(msg);
handler.sendMessage(msg);
} catch (Exception e) {
e.printStackTrace();
}).start();
public boolean handleMessage(Message msg) {
switch (msg.what) {
case LOAD_USER_ICON:
left_menu_fragment_imagebutton.setImageURI(Uri.parse(picturePath));
* listview的适配器
* @author Administrator
class myListAdapter extends BaseAdapter {
private TextV
public int getCount() {
// TODO Auto-generated method stub
return itemname.
public Object getItem(int position) {
return itemname[position];
public long getItemId(int position) {
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = View.inflate(mActivity,
R.layout.left_menu_fragment_listview, null);
text = (TextView) convertView
.findViewById(R.id.left_menu_fragment_listview_textview);
text.setText(itemname[position]);
return convertV
/****************************************************************************************/
/** 设置授权回调,用于判断是否进入注册 */
public void setOnLoginListener(OnLoginListener l) {
this.signupListener =
public void setPlatform(String platName) {
Log.i("pan", "platName的值为:" + platName);
platform = ShareSDK.getPlatform(platName);
initData();
这下面是打印的值:
10-30 09:11:52.480: I/pan(8062): leftMenuFragment中的username额路的快乐
10-30 09:11:52.480: I/pan(8062): leftMenuFragment中的icon/qqapp//C9F7206982CCF2EC
10-30 09:11:52.480: I/pan(8062): leftMenuFragment中的username222222额路的快乐
10-30 09:11:52.480: I/pan(8062): 执行进入了获取icon方法吗
这下面是错误的提示:
10-30 09:11:52.490: E/AndroidRuntime(8062): java.lang.NullPointerException
10-30 09:11:52.490: E/AndroidRuntime(8062):
at com.pan.foucstoday.fragment.LeftMenuFragment.initData(LeftMenuFragment.java:121)
10-30 09:11:52.490: E/AndroidRuntime(8062):
at com.pan.foucstoday.fragment.LeftMenuFragment.setPlatform(LeftMenuFragment.java:270)
10-30 09:11:52.490: E/AndroidRuntime(8062):
at com.pan.foucstoday.AuthorizationLoginActivity.handleMessage(AuthorizationLoginActivity.java:201)
10-30 09:11:52.490: E/AndroidRuntime(8062):
at com.mob.tools.utils.UIHandler.handleMessage(Unknown Source)
10-30 09:11:52.490: E/AndroidRuntime(8062):
at com.mob.tools.utils.UIHandler.access$000(Unknown Source)
按赞数排序
有返回值说明程序没错,是你这边获取登录的代码报错。userInfo.getUserName().toString()试试
还是报这个错呢,这里他说UIHandler没有资源,但是我没有用UIHandle呢,我是自己定义的一个Handle
10-30 10:31:37.370: E/AndroidRuntime(11735): java.lang.NullPointerException
10-30 10:31:37.370: E/AndroidRuntime(11735):
at com.pan.foucstoday.fragment.LeftMenuFragment.initData(LeftMenuFragment.java:101)
10-30 10:31:37.370: E/AndroidRuntime(11735):
at com.pan.foucstoday.fragment.LeftMenuFragment.setPlatform(LeftMenuFragment.java:263)
10-30 10:31:37.370: E/AndroidRuntime(11735):
at com.pan.foucstoday.AuthorizationLoginActivity.handleMessage(AuthorizationLoginActivity.java:201)
10-30 10:31:37.370: E/AndroidRuntime(11735):
at com.mob.tools.utils.UIHandler.handleMessage(Unknown Source)
10-30 10:31:37.370: E/AndroidRuntime(11735):
at com.mob.tools.utils.UIHandler.access$000(Unknown Source)
10-30 10:31:37.370: E/AndroidRuntime(11735):
at com.mob.tools.utils.UIHandler$1.handleMessage(Unknown Source)
空指针你看看哪里的问题啊、、
可能不是sharesdk那一块的问题了、
你看看userinfo是不是空,,然后看看userinfo. getUserName()是不是空。
14302关注|1530收录
其他相似问题
相关参考资料}

我要回帖

更多关于 用户授权并获取code 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信