微信登录分享...报错...MicroMsg.SDK.WXApiImplV10: handleIntent fail, ex = println needs a message

这几天开了个新项目....在做微信第三方登录这一块,都不知道写过多少次了...想了想应该是信手捏来吧...随便写了下...点击登录...什么情况...为什么没有登录... ..

而且还卡在 WXEntryActivity界面上...报错

MicroMsg.SDK.WXApiImplV10: handleIntent fail, ex = println needs a message

而且  boolean result = api.handleIntent(getIntent(), this);  这个等于  false....  (= =!)
            boolean result = api.handleIntent(getIntent(), this);
            if (!result) {
                finish();
            }

到微信官方的文档里...非常非常严格按照他来一遍...emmm还是不行....有毒吧...

看以前的项目的代码研究研究...emmmm....没多少差啊...以前项目能登录...这个项目不能登录...这难道是....上天不想让我好过?

我得百度一下...寻找大家宝贵的意见...

结果发现....同样案例并不多...而且解决方案都没多少效果......

有人说...

api = WXAPIFactory.createWXAPI(this, Global.WX_APP_ID,false);    这句话的false改为true...   试了几百次     哈哈     没效果...哈哈

api = WXAPIFactory.createWXAPI(this, null);  // 看微信官方Demo里面注册微信的时候  他竟然传null...那我也试试...

哈哈    不行

又有大佬花时间...分析微信的源码试了试...弄出了曲线救国的方法

这里带上大佬的链接...以便大家学习学习....https://blog.csdn.net/Livart_Corp/article/details/94354236

...试了下 

确实可以,安全登陆了.......但是曲线救国.....勉强解决了难关........却也让自己难以心安...所以趁着现在项目加需求....又能多出点开发时间...这就腾出手来.....又试着折腾....

这个得解决...因为项目太依赖微信登录微信分享了....

顺带一提...曲线救国方案...分享可以分享..但是一样报错,进不去onResp(BaseResp resp)

boolean result = api.handleIntent(getIntent(), this); 这个还是等于 false.... (= =!)

这时候...我考虑过...会不会是包名问题...签名问题...可是如果是这个问题的话...曲线救国的写法为什么又成功登陆了...

所以这个问题否决掉....

否决掉不细心配置错的问题...这时候    我们只能试试...会不会是微信缓存问题...

用十几只测试机试了几下...emmm...结果一样...全部卡在...MicroMsg.SDK.WXApiImplV10: handleIntent fail, ex = println needs a message....不是缓存问题...这是代码问题啊.....

那么...会不会是微信开放平台上面填写的数据有问题呢?    我们试一下...改包名...对...改包名...给项目换包名...再签名...再试试

结果一样....哈哈哈...

说真的....不折腾真的不行...真的不行的时候    有时候重写一下   就可以了   你说可气不可气....

-----------------------最后的     解决过程----------------------

删除wxapi整个包....再创建...再重写WXEntryActivity这个类...       以下引用的是官方Demo里面的WXEntryActivity的代码..方便给广大兄弟们用来改造...

你们可以备份下当前wxapi包     然后删除掉     再用下面这个

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {

    private static String TAG = "MicroMsg.WXEntryActivity";
    private IWXAPI api;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.e(TAG, "解决微信问题...MicroMsg.SDK.WXApiImplV10: handleIntent fail, ex = println needs a message.");
        
        api = WXAPIFactory.createWXAPI(this, APP_ID, false);
        
        Log.e(TAG, "解决微信问题...这里设置true还是false...都没解决问题");
        try {
            boolean result = api.handleIntent(getIntent(), this);
            Log.e(TAG, "解决微信问题...这里是true还是false... result = " + result);
            if (!result) {
                Log.e(TAG, "解决微信问题...参数不合法,未被SDK处理,要退出");   //+ this.getPackageName()打印自己包名   确认下是不是填对了
//              finish();
            }
        } catch (Exception e) {
            Log.e(TAG, "这个有点恶心...你要报什么错 e = " + e.toString());
            e.printStackTrace();
        }

        Log.e(TAG, "onCreate  结束 ");
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }

    @Override
    public void onReq(BaseReq req) {
//        finish();
    }

    @Override
    public void onResp(BaseResp resp) {
        int result = 0;

        Log.e(TAG, "进入    WXEntryActivity   onResp   我们要的就是进入这里...以便我们做监听啊 ");
        switch (resp.errCode) {
            case BaseResp.ErrCode.ERR_OK:
//			result = R.string.errcode_success;
                break;
            case BaseResp.ErrCode.ERR_USER_CANCEL:
//			result = R.string.errcode_cancel;
                break;
            case BaseResp.ErrCode.ERR_AUTH_DENIED:
//			result = R.string.errcode_deny;
                break;
            case BaseResp.ErrCode.ERR_UNSUPPORT:
//			result = R.string.errcode_unsupported;
                break;
            default:
//			result = R.string.errcode_unknown;
                break;
        }

//        finish();
    }
}
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:exported="true"
            android:launchMode="singleTask">
        </activity>

最终也是成功唤起微信...也可以监听onResp(BaseResp resp)....折腾了大半天...还不如重写来的快...哭晕在厕所

废话不多说....进行对比运行...傻瓜式操作.....

找到报错的地方......就是onResp()方法....     用下面的代码取缔你的onResp...       再运行一次...你会发现...打印了进入...没有MicroMsg.SDK.WXApiImplV10: handleIntent fail, ex = println needs a message

没有错误后.....再把对应功能写上...


    @Override
    public void onResp(BaseResp resp) {
        Log.e(TAG, "进入  onResp");
        switch (resp.errCode) {
            case BaseResp.ErrCode.ERR_OK:

                break;
            case BaseResp.ErrCode.ERR_USER_CANCEL:

                break;
            case BaseResp.ErrCode.ERR_AUTH_DENIED:

                break;
            case BaseResp.ErrCode.ERR_UNSUPPORT:

                break;
            default:

                break;
        }

//        finish();
    }

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值