【友盟+】开发者社区

解决友盟分享的报错的利器——debug模式

xiaolin 发表于 2016-12-13 14:03:19 | |阅读模式

xiaolin
xiaolin 发表于 2016-12-13 14:03:19 | 显示全部楼层 |阅读模式

使用过友盟分享的朋友一定遇到过这样的情况,按照文档说明配置工程,可是依然不能分享或者分享失败。这主要是有一下几种原因:
1.有些文档的细节被忽略了
2.签名问题
3.不支持的分享内容,或开发者账号问题
第一种原因对于老用户或者熟练的开发者来说已经不是什么问题了。
反倒是第二种原因成为许多开发者的拦路虎,尤其初学的开发者,根本不知道什么叫签名,也不知道签名是什么,很多人问,为什么非要签名,难道不用不行吗?答案是肯定的,签名是由于三方平台(新浪,微信,facebook等)出于安全考虑设定验证的。如果去掉,可以使用intent打开客户端的方式分享,这样,就不支持较多的分享类型,而且体验也不好。所以签名是必须的。如果不了解的开发者可以参考这个签名文档
第三种原因可能是由于分享内容的不支持或开发者账号。由于许多开发者都是第一次使用分享,不了解三方平台的注册流程。例如三方平台的注册应用没有过审核就开始测试使用。明明分享的文字图片,为什么分享到平台之后只有图片,这都是由于对三方平台的分享策略不甚了解,对于不同平台可以分享哪些内容可以参照demo或者签名文档
说了这么多,可是切入到今天的主题——友盟分享的debug模式,看看这个神奇的功能如何帮助用户解决问题。

打开debug模式

debug模式现只支持Android平台,且是6.1以后的版本。开发者只需要在你初始化sdk之前(设置各个平台的appkey的地方)用以下代码打开即可:

Config.DEBUG = true;
  • 1
  • 1

然后重新运行即可。但是要记得上线前关掉,这样才不会影响你的线上版本。
然后运行的时候,打开你的logcat,搜索umeng_tool,如下图所示:

检查版本是否一致

许多开发者都会遇到这样的问题,配置都正确,仍然会crash,这可能是由于,你更新sdk,但是没有更新全,比如只更新了各个平台的包,没有更新main中的jar包,或者没有替换新的资源文件等

检查jar是否都一致
有上图log可以看出,核心包版本号6.1.1,分享界面版本号6.1.1,新浪平台版本号6.1.1,可以确定jar运行没有问题
资源文件是否缺失

如果缺少资源文件,会由上图的crash log打印出来,其中type 是资源类型,name为文件名或id的名字,方便用户查找。

检查分享内容

如果发现你分享的内容与展示内容不一致时,可以查看log中真正传入的内容,如下图所示,进行对比

检查微信平台签名不对

签名不对进行分享时,会回调错误,如下图所示:

授权时如果调用后,一直没有跳转,可以检查log,会有如下提示:

这时如果不是因为网络问题,请去根据打印的签名去微信后台检查。

这里要特别注意两件事
1.如果签名与后台确实一致无误,考虑是不是appid问题
2.如果签名与后台确实一致无误,卸载微信重新安装或,清理微信缓存文件,重新运行。这是由于你之前用错误的签名和同样的包名运行过,微信有缓存造成的。

回调activity的问题

微信需要设置回调activity,如果你开了debug模式,点击分享会有如下提示:

这是你就要参照文档,设置回调的Activity,否则没有回调。

检查QQ平台Androidmainfest配置不正确

QQ需要在Androidmainfest中配置对应的activity,如果没有配置或者精简版完整版配置错误,会有一下提示:

这时需要参照文档进行配置。
或者你在Androidmainfest中配置了,但是每次分享回调都是取消,这是检查log,会有如下提示:

这是因为你配置的AuthActivity不正确,如下图示:

需要把箭头处设置为你qq的appid

检查后台包名

如果配合正确,仍然不能授权或者分享,可以根据打印的包名与qq后台的包名进行对比:

检查回调

如果qq分享授权没有回调,可以检查log看是否有如下一行:

如果没有,请检查你所使用的activity是否配置了:

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    super.onActivityResult(requestCode, resultCode, data);    UMShareAPI.get(this).onActivityResult(requestCode,resultCode,data);}
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
检查新浪平台签名问题

如果新浪微博sso授权,界面由于一下问题不能进行授权,是由于新浪微博的签名问题造成,请检查签名问题。

回调地址问题与安全域名问题

如果授权仍有问题,请检查新浪后台的签名与设置的是否一致:


如果您使用的是精简版,请特别注意
需要检查新浪微博的安全域名是否是sns.whalecloud.com

其他说明

有开发者可能会问,每次分享的一个流程中需要检查这么多东西,效率会不会低,这肯定是不会的,因为你真正上线的版本是关闭debug模式的,不会再自检这些东西。

其他报错说明

还有一些特定原因也会显示在log中,开发者可以根据log的提示进行修改。

下载地址

介绍了这么多debug模式的功能,您再也不需要排队等待客服了,是不是感觉自己也能成为一个解决问题的能手了。好了,赶紧来一发吧,体验下debug模式带来的简便快捷。






上一篇:QQ空间分享,第一返回oncancel,以后都返回成功
下一篇:友盟分享的短信分享按钮为什么一直不显示??

唔~集中问题可以看置顶帖子,有相关的索引点我!我是索引,珍惜我们交流的机会,解答您的问题同时您也回复几个力所能及的问题咯
您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

精彩推荐

新浪开放平台应用注册方法
新浪开放平台地址:http://open.weibo.com/ 1. 创建应用 注意选择微连接-移动应用 2. 填写应用信息 An
腾讯开放平台应用申请方法
腾讯开放平台地址:http://open.qq.com/ 1. 创建应用 创建应用时注意勾选对应的Android或iOS平台 2.
微信开放平台应用申请方法
微信开放平台地址:https://open.weixin.qq.com/ 1. 注册应用 注意这里必须选择移动应用注册 2. 填写

关注我们

新浪微博
微信

欢迎关注友盟官方微博微信!

在线客服
返回顶部 返回列表