微信分享不成功,不能正常调起微信
1:签名文件不一致
1:我们平时运行项目使用的是debug模式,使用命令在(stodio中的terminal, keytool -v -list -keystore 签名文件路径)中,生成的也是debug模式下的签名文件
2:因为我们的分享需要在开发平台注册MD5的签名,但是我们的微信开发平台的配置的MD5的签名是release(正式包)的签名
总结:由于这个原因,导致签名文件不一致(一个正式,一个测试),导致微信的分享不能正常吊起来,这是比较正常的原因
解决:在build gradle中进行配置,配置同样的签名文件地址
2:UmengTool.getSignature(this);(可以打印签名,和用微信工具生成的签名是一样的)
signingConfigs { debug { keyAlias 'android' keyPassword 'android' storeFile file('jks文件的路径') storePassword 'android' } release { keyAlias 'android' keyPassword 'android' storeFile file('jks文件的路径') storePassword 'android' } }
这样可以使测试符和正式符的签名文件一致。可以使用微信的签名工具(https://open.weixin.qq.com/cgi-bin/readtemplate?t=resource/app_download_android_tmpl&lang=zh_C,下载路径)和studio的命令生成的签名比较一下,是否一样(事实是一样的)。
项目总结:但是我们的项目在运行过程中出现了一个奇怪的问题,使用命令行和签名工具生成的MD5签名不一致,但是我们的build gradle文件中进行配置了同样的签名文件的路径,导致微信不能正常调起。经过仔细检查,发现我们的命令在执行的过程中出现了两个MD5的签名,但是两个签名并不一样。但是有一个是和签名工具生成是一样的,而我们刚好在微信开发平台注册的时候用的是不一样的那个。从新改正一下就好使了。