最近开发公司SDK需要接入微信支付功能,于是上了微信开发者平台,下载微信的SDK,按着文档接入。当我进行微信支付,需要调起微信客户端,但是却没有。而微信回调WXPayEntryActivity也没有被回调起来。
这就很奇怪了,看回文档,说要把WXPayEntryActivity放到wxapi包下,而且在Manifest的路径配置还必须是
<activity android:name=".wxapi.WXPayEntryActivity" android:exported="true"></activity>
但是我把以上的要求都配置好了。还是调不起来WXPayEntryActivity,而且还报了classNotFound的异常
在看看我的项目配置
如果仔细看项目的报错的话,你就可以发现问题了。因为我是在SDK里面接入的微信支付,却在demo里面调用微信支付和在Manifest文件配置路径。这就导致了微信SDK找不到了WXPayEntryActivity,因为WXPayEntryActivity的路径根本不是这个,可以看到下图
要怎么修改呢?我们可以根据报错提示,把包名改一下,改为下图:
你看路径是不是和提示的一样了!这时候再运行一下项目
微信的回调界面成功出来了。而返回-1的错误码是因为,我的包名和签名都与微信后台配置不一样。只需改一下就好了。最后总结一下解决方法:
1.看一下你的回调WXPayEntryActivity界面是否按照放到对应的wxapi包名下了
2.看下是否在Manifest文件里按照配置了对应的路径。因为微信回调是要根据这个路径找的回调界面,如果这个路径配置一个都不能错
3.如果上面两步都做了还是回调不起来,可以参考我上面的方法,修改一下包名
问题到这里就完美解决了,遇到问题不要怂,学会冷静分析,同时告诉自己电脑不会骗人的。我是一名android工程师,我为自己加油!