第一次接触rn项目,就遇到了个让人抓狂的问题,APP分享功能在android11上分享失败了,在咨询项目前负责人和相关文档查阅后,发现涉及两个主要的问题。
问题一:友盟基础库版本太低,项目友盟基础库原先版本 2.2.2,基础库和与之对应的SDK需要升级到最高。
问题二:APP监管力度加强,为保护用户隐私,需要将友盟+SDK初始化延迟到用户同意隐私政策后进行。
这次友盟升级主要是针对微信分享问题的解决,由于时间紧迫,这里不涉及统计、推送相关的问题的解决(主要是还没来得及研究 ,哈哈)
好了,让我们进入正题吧。
第一步:我这里采用的是自动集成,所以,按照分享集成文档要求,将工程里的build.gradle配置脚本中buildscript和allprojects段中添加【友盟+】SDK maven仓库地址。
maven {
url 'https://repo1.maven.org/maven2/'}
第二步:将将基础库和对应的SDK版本修改一下,我这里用的是基础库版本时9.3.8,对应的分享SDK版本时7.1.4,文档中都是在线依赖,但是我项目里分享SDK用的是本地依赖,所以我就单独去下载了SDK包,引用本地依赖,这个根据大家自己的项目来就好。
版本修改后:
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.umeng.umsdk:common:9.3.8'
implementation 'com.umeng.umsdk:asms:1.2.2'
implementation 'com.umeng.umsdk:apm:1.2.0'//推荐,错误分析升级为U-APM产品,关注crash数据需集成
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.6.5'//微信官方SDK依赖库
api files('libs/umeng-share-core-7.1.4.jar')
api files('libs/umeng-share-wechat-full-7.1.4.jar')
api files('libs/umeng-shareboard-widget-7.1.4.jar')
之前微信依赖库用的是:
api 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.4.0'
我在这里碰到一个问题,就是替换微信官方SDK依赖库的时候报错,
检查代码后发现,工程中app文件下的build.gradle配置脚本dependencies段中有这样一行,
把对应的with改成without就好啦
implementation "com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+" //微信支付,jCenter获取sdk
第三步:添加回调Activity
微信在包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity。
package org.devio.trackshare.wxapi;
import com.umeng.socialize.weixin.view.WXCallbackActivity;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
public class WXEntryActivity extends WXCallbackActivity {
}
第四步:
文档中的代码有个小坑,就是不够严谨,上面倒数第三行,仔细看会发现少了一个双引号,这对初次接触android的小白来说,这语病让我感觉被调戏了啊,难受
还有下面这个也是,
有点小无语,标签和属性拼一起去了,看来cv工程师也不是那么好当的。
这里还有一个坑点就是。。。。当我升级完后,android10以上是能正常分享了,可是android10以下的又GG了,分享图片没反应,也不报错,
分析半天也木有啥结果,最后只好去咨询了客服,我配合客服检查我的代码后。。。
<?xml version=<