from:http://blog.csdn.net/freesonhp/article/details/10756663
1、建立自己的应用 TestShareWX
(1)应用包名是com.freeson.test,然后建立一个测试Activity,名字为TestActivity,里面有一个Button和EditText
(2)运行程序,请记住此时你编译运行的时候,用的是android默认的debug.keystore签名的。
2、到官网http://open.weixin.qq.com/download/?lang=zh_CN下载开发工具包,解压,将libammsdk.jar复制到libs中,并将其add到build path中。
3、到官网http://open.weixin.qq.com/agreement登记你的应用, 这里省去前面那些基本的操作 ,这里要注意以下的步骤。
其中有一步是要用个签微信那名的apk工具对我们程序进行签名的,因为我们的程序已经安装了,所以直接下载安装,然后在手机里面的那个框框输入包名(我这里是com.freeson.test,包名不能填错哦),点击生成按钮,这时候会生成一个md5值,将其输入到登记页面的框中
这个md5值是需要正视签名发布后获取的MD5值
5、其实在第一步的时候,就已经说了,我们在官网申请的AppId的时候填写应用程序签名也是就是用debug.keystore生成的。然而我们此时在手机里面运行的apk是用我们自己生成的签名(xxx.keystore)进行签名的,两个签名都不一致,所以很理所当然会导致分享失败。因为微信要对我们应用进行一个验证,就是通过这个签名来认证的。
1、还是签名问题,一个项目,几个人完成的话,如果大家都是用各自默认的debug.keystore进行运行的话,在debug版本,微信分享功能肯定只有在申请的微信appid的那台机器生产的apk才能正常。
2、关于微信分享信息结果反馈,这个要注意的是以下两点,要不要肯定是不会收到分享反馈的。
(1)这个Activity的名字一定是WXEntryActivity
(2)WXEntryActivity这个类一定是建立在 应用包名+wxapi包下(比如上述的工程,这时候包名应该是com.freeson.test.wxapi)
签名跟打包apk生成的keystore有关,每次修改需要重新审核。
见 https://open.weixin.qq.com/cgi-bin/readtemplate?t=resource/app_faq_android_tmpl&lang=zh_CN
至于为什么第一次能分享,第二次点就没反应,我相信大多数人都是遇到过的 下面看看官方给的解释
Android常见问题 Q:应用没有审核通过能不能进行调试? A:iOS应用只要申请并获取到AppID就可进行调试。Android应用除了获取AppID外,应用还要通过审核,否则无法调起微信进行分享,并且需要在网站上填写包名和签名两个字段,签名可使用签名生成工具获取。如有特殊需要,请自行参见《Signature的生成方法》生成。 Q:为什么代码混淆之后,会导致无法弹出发送第三方消息的确认框? A:需要在混淆配置文件proguard.cfg中,增加如下两行代码: -keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage { *;} -keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;} Q:为什么用网上下载的SDK Demo工程直接运行到设备上,一开始可以正常调试,后面就不可以? A:这里是由于身份校验失败造成的,要运行SDK Demo工程,可以参考文档《如何运行SDK Demo工程》,同时请下载更新最新版的SDK Sample。 Q:为什么日志里面有时候会出现setup profile from amm_manifest.xml failed错误? A:这是由于SDK加载内部配置文件失败造成的,不影响SDK的正常使用,可以忽略这个错误日志。 更多问题,请邮件联系 weixin[email protected] 或关注官方微博 http://t.qq.com/weixin_app 的最新动态。
在微信分享中主要碰到了如下问题:第一次可以分享,以后就无法调用出分享对话框。这不是程序问题,而是需要提交审核,只有审核通过,才可以调出分享对话框。不相信?那你可以先将微信退出,再试着点击分享,这时就会弹出登录对话款,登完之后也没有分享对话框,完全没你啥事了。
另外android版微信分享开发时,应用签名(推荐使用官网提供的签名生成工具)是由你的打包所使用的数字证书来决定的。不相信?那先卸载此程序,再将你的应用包名重新改下,不要改变数字证书,运行。然后运用此签名生成工具获取应用签名,完全一样。因此,正式的应用发布还是要自己生成一个数字证书比较好。如果签名不是很理解,请看我之前的一篇文章:http://blog.csdn.net/qianfu111/article/details/9113887
第一步:
申请APP_ID,然后还需要填那个“应用类型” ---下载地址地址无关紧要;重点是应用签名,接下来会讲,先空着;包名,顾名思义就算你的Android应用的包名
第二步:
在程序中调用微信api,具体步骤,微信开放平台的android上手指南讲的很清楚。
第三步:
调试api,为了方便我们可以先用微信提供的demo。重点:1、找到demo根目录下的debug.keystore文件 2、选择Eclipse顶部菜单Window->Preferences,选择Android目录下的Build 3、指定Custom debugkeystore选项的路径为sdk demo工程目录中的debug.keystore文件 确定OK (第一步保证了微信的SDK demo可以正常使用了)
a.很多人不知道那个签名生成工具到底是干嘛的。首先,你打包自己的包,自己的key一定要注意.也就是 export. b.在你的手机上安装你刚刚有签名的apk包。然后安装刚刚在微信开放平台上下载的那个apk包,叫gen_signature.apk c.打开gen_signature,输入你的包名。确定之后就会生成一串码(这个就是所谓的签名),这个非常重要。 d.你要在微信开放平台上登记你的应用的时候,之后有一项必须要填写正确----“应用签名 (Android)”---填写刚刚你用gen_signature.apk生成的那串 码. e.然后你会发现怎么还是分享不成功?我告诉你,微信相当郁闷,他必须要审核通过了之后才能分享成功 f.如果现在你还是分享不成功。有可能是因为你是直接run的。必须要打包安装在手机上,还有必须要有微信客户端。 g.现在你还是分享不成功?看看你的代码里面,是不是注册了...再就是,你必须要审核通过才能分享成功.(快的话第一次三天左右) h.最后,还是希望大家在做分享的时候,仔细看看微信的文档.因为微信的sdk并没有把错误打出来,有时候很无奈.所以还是希望能够仔细看看那些类,还有就是 那些限制,比如标题的限制,图片大小的限制等等,本人在这上面吃了大亏.都是不仔细弄得.希望大家不要犯跟我一样的错误.