华为无法识别微信分身的解决办法

解决方案: com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+ 将 + 改为 6.6.4。

处理过程如下
接到用户反馈,华为手机下,我们的游戏在用户授权时无法识别分身。
第一步,工欲善其事,必先利其器。不能不信邪,先看相关知识。

  1. 了解一下Activity的启动模式,怎样通过Intent来启动一个Activity。
  2. 了解一下Manifest的对微信 WXEntryActivity 的配置。Android是将安装应用的Manifest进行集中键值管理,然后在发生 WXEntryActivity 调用的时候,去将对应的 Activity 显示出来。
  3. 简单了解了一下华为的分身实现模式。这方面的资料不多,设身处地的想一下,如果是要让我来实现,我会怎么做,猜测然后印证。我猜是在启动 Activity 的时候,做了一个监听识别,判断是否是分身对应的 Activity,然后做后续的弹窗处理。所以,主要查看启动WXEntryActivity时的Log信息。
  4. 到微信开发者平台查阅关于分身的信息。结果,发现微信是不推荐分身的,也不会对其进行技术支持。也就是说分身是手机开发商为了给用提供便利而开发的功能。
  5. gradle是个构建工具,所以,gradle的版本不会对工程的结果有太大的影响,排除掉它。gradle依赖微信SDK的方式,是官方推荐的方式,如下:(伏笔)
  dependencies {api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'}
  1. 下载微信官方实例,分身可以正常识别。

第二步,比对Apk差异

  1. 比对manifest文件,安装 apktool 分别对新旧包进行解包,判断是否是微信 WXEntryActivity 配置的原因。发现是一致的。
  2. 官网下载apktool,https://ibotpeaches.github.io/Apktool/。切换到安装方法页面,https://ibotpeaches.github.io/Apktool/install/。
  3. 比对安卓运行日志,将比对内容缩短在手指点击触发SDK调用到拉起微信 WXEntryActivity 这一部分。
    MicroMsg.SDK.MMessageAct: send, targetPkgName = com.tencent.mm, targetClassName = com.tencent.mm.plugin.base.stub.WXEntryActivity
    I/MicroMsg.SDK.MMessageAct: sendUsingPendingIntent //新的SDK使用这个模式启动,这个是唯一的区别。
  1. 通过Log判断,得到SDK的Intent调起Activity的方式变化了,采用的PendingIntent的方式,所以,是SDK发生了变化。但是,我们没有修改过build.gradle,SDK的依赖没有调整过,为什么会有变化呢?
    第三步,万恶的:+
  2. 依赖SDK的方式:api ‘com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+’
  3. :+代表的是最新版,也就是说按照官方提供的文档,你使用的SDK将和官方同步。所以,官方修改了SDK的调用模式,华为无法识别Activity,就无法触发分身。因为,官方不推荐分身,所以,不会照顾兼容性。
  4. 将:+改为:6.6.4,为最后一个可使用分身的微信SDK版本。至此,问题解决。
  5. 微信官方实例,之所以能正常识别分身的原因是,它使用的SDK是指定版本的,不是:+。

微信授权无法识别分身的解决办法相关推荐

  1. 微信公众号开发redirect_uri 参数错误 的解决办法,Oauth2授权重定向域名参数错误解决办法

    问题概述 关于这个问题,博主是在进行微信公众号开发过程中获取微信公众号CODE用于下一步验证获取openid和access_token时遇到的, 回调地址: " https://open.w ...

  2. php微信公众号测试号token配置失败,微信公众号Token配置失败解决办法

    前言 今天生病在家,由于我的微信公众号被投诉了,因此影视站接口被迫关闭,于是就想着给大家分享 APP,于是就用了下微信的自动回复, 想着能否把这个自动回复对接到 MIPCMS 上,于是就开干.但是微信 ...

  3. android qq三方登录授权失败,QQ第三方登陆授权失败110401原因及解决办法分享

    qq第三方登陆授权失败出现代码110401是什么情况?遇到这种情况该如何解决?相信很多用户们在操作的时候都出现过类似的情况吧?下面是小编带来的攻略解析,一起来关注下! qq第三方登陆授权失败11040 ...

  4. java 不识别enum_Java enum关键字不识别的快速解决办法

    从别人那儿拷贝过来的myeclipse java工程,打开一看标红了一大片,仔细一看,原来是不识别enum关键字,这就有点尴尬了. 我自己重新建了一个java工程,测试了下,假如我在新建工程的时候选择 ...

  5. 占书明:电脑只能上扣扣QQ和微信,无法打开网页,解决办法!

    占书明:电脑只能上扣扣QQ和微信,无法打开网页,解决办法! 经常有这种,电脑能上扣扣QQ,能上微信,但无法上网,打开网页无法访问,你ping也是可以ping通的,这种情况,现在是越来越多,那么,是怎么 ...

  6. 苹果4S手机IOS6.1.3系统《微信6.2》登录失败解决办法!100%成功!小白也会用!

             苹果4S手机IOS6.1.3系统<微信6.2>登录失败解决办法!100%成功!小白也会用! 首先我要鄙视那些正在IOS6.1.3上使用微信,而又不分享成功方法的人,自己悄 ...

  7. 记一次CH552不识别无法下载解决办法

    记一次CH552不识别无法下载解决办法 事情是这样的,在一次项目中使用了沁恒微电子的一款CH552 USB芯片,硬件调试中出现了问题,部分电路图如下 芯片自带3.3V LDO,项目中其他部分也刚好需要 ...

  8. Linux微信运行错误,Ubuntu 16.04 运行微信开发者工具编译出错的解决办法

    最近有折腾小程序的意向,但微信的开发者工具只提供了 Windows 和 Mac 两个版本,对于我这样的 Linux 用户来说不是那么地友好. 经过观察发现,那个开发者工具实际上是基于nw.js开发的, ...

  9. 微信小程序编译的错误解决办法:Error: accessSync:fail no such file or directory

    文章目录 前言 一.编译报错 二.解决办法 1.点击(右上角)详情→本地设置→(版本号) 2.选择版本号,修改相应版本号,再点击推送 总结 前言 ~~本人在微信小程序中编写代码,使用到ESP8266- ...

最新文章

  1. udacity 项目同学解决方案
  2. 业界丨2018,人工智能革命走向风口浪尖
  3. BCH应用发展报告——Member正在成为趋势
  4. Spark RDD并行度与分区设置
  5. 取整 除法_Python学习教程:Python3除法之真除法、截断除法和下取整对比
  6. 笔记本电脑没有鼠标怎么右键_联想笔记本电脑没有声音怎么修复
  7. HTML比较常用的标签
  8. C++:28 --- C++内存布局(上)
  9. 每天打卡心情好(洛谷P1664题题解,Java语言描述)
  10. 【c语言】定义一个指针数组,指向5个不同的char型数组
  11. 中国移动开通eSIM 一号双终端将要取代传统SIM卡?
  12. JavaScript运动应用一
  13. 罗振宇2018“时间的朋友”跨年演讲未删减全文
  14. excel怎么一个格子斜分_表格excel怎样把一格用斜线分为三格
  15. 期货市场监控后台管理系统
  16. python语言应用 智慧树满分章节测试答案_Python语言应用完整智慧树网课章节测试答案...
  17. Windform C# Graphics绘图,消除锯齿
  18. Linux笔记之Docker安装,基于Debian 11(bullseye)
  19. 论文阅读笔记- Dremel
  20. 国外LEAD赚钱的一些习惯

热门文章

  1. js装修计算器java代码_JS制作简易计算器的实例代码
  2. 1-1/2+1/3…-1/100,求和
  3. 函数程序设计——圆形体体积计算器
  4. 深圳8千名滴滴司机被封号? 官方:只是平台整治
  5. 全选或者取消全选代码
  6. 解决The page at ‘xxx‘ was loaded over HTTPS
  7. OTB Benchmark 学习(下载链接、评价指标、配置)
  8. 微信支持聊天图片搜索;任天堂社长称暂不入局元宇宙,因为没弄懂;英特尔开放x86内核授权 | EA周报...
  9. 百度搜索推出细雨算法,看看对你有什么影响?
  10. win10 鼠标指针