目录

一、移动统计SDK

二、消息推送U-push

1、修改应用包名问题

2、第三方依赖冲突导致出错

三、第三方平台分享

1、手动集成

2、自动集成

3、集成过程中问题

3.1 配置Android Manifest XML

3.2. qqappid缺失报错:

3.3 QQ授权代码

3.4  微博分享 [compileSdkVersion = 29]


最近不少第三方SDK提供方也根据市场监管的规则进行了对应的调整。Umeng是一个老牌的第三方SDK的集成开发平台,它的SDK也做了相当多的升级和更新。笔者的Android APP接入的Umeng sdk是之前比较老的旧版本了,现在监管新规出来了,还是需要重视下,免得违规导致下架,现在将接入最新版的Umeng sdk的过程和相关问题记录下。

Umeng App监管执法合规自查通知

一、移动统计SDK

sdk集成流程参考文档:https://developer.umeng.com/docs/119267/detail/118584

照着上面的文档来做,过程很简单,集成过程中没遇到什么问题,建议采用自动集成方式导入相关的引用包:

implementation  'com.umeng.umsdk:common:9.5.2'// 必选
implementation  'com.umeng.umsdk:asms:1.6.3'// 必选
implementation 'com.umeng.umsdk:apm:1.7.0' //错误分析模块改为独立库,看crash和性能数据请一定集成
implementation  'com.umeng.umsdk:abtest:1.0.0'//使用U-App中ABTest能力,可选

二、消息推送U-push

SDK v6.5.5 自动集成文档:https://developer.umeng.com/docs/67966/detail/206987

引用包:

implementation 'com.umeng.umsdk:push:6.5.5'

1、修改应用包名问题

这里要注意的是,如果你开发过程中,修改了应用的包名,一定要记得将修改后的包名和Umeng的推送后台管理设置[见下图]的包名保持一致,否则推送消息给客户端会抛出错误。

2、第三方依赖冲突导致出错

当您向应用项目添加多个依赖项时,这些「直接依赖」和「间接/传递依赖项」直接可能会相互冲突,在出现类似情况时,build项目的时候就会报错,可以参考笔者另外一篇文章:Android第三方依赖冲突解决方案 - 以集成友盟推送(U-Push SDK)与阿里云移动用户反馈(Mobile Feedback SDK)为例_思涛的博客的博客-CSDN博客

三、第三方平台分享

社会化分享集成文档:https://developer.umeng.com/docs/128606/detail/193879

笔者集成了几个主流平台,包括微信、QQ、微博的分享,集成方式也包括自动集成和手动集成,如果你网速比较好另外还能自由翻墙,建议还是采用「自动集成」方式比较便捷。这部分集成的第三方平台的SDK是最多的,所以集成过程中的遇到问题也最多。

1、手动集成

例如下面是「share_android_7.2.1 sdk」的内容,手动集成的方式比较繁琐,虽然Umeng已经按不同平台将各个平台的lib包分类了,但需要手动将各个jar包拷贝到app的libs目录下,并且还有很多res图片资源和layout文件都需要自己逐一拷贝到项目的对应的目录下。

笔者最开始是采用手动集成方式,但是过程中并不顺利,总是报错或编译过程中缺少文件类,所以就放弃了。虽然拷贝的一些资源文件和自动集成jar的资源文件有重叠,但是编译打包运行也没有问题。

2、自动集成

    implementation  'com.umeng.umsdk:share-core:7.2.1'//分享核心库,必选implementation  'com.umeng.umsdk:share-board:7.2.1'//分享面板功能,可选implementation  'com.umeng.umsdk:share-wx:7.2.1'//微信完整版implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.8.0'//微信官方依赖库,必选implementation  'com.umeng.umsdk:share-qq:7.2.1'//QQ完整版implementation files('libs/open_sdk_3.5.12.2_r97423a8_lite.jar') //QQ官方依赖库,必选implementation  'com.umeng.umsdk:share-sina:7.2.1'//新浪微博完整版implementation 'io.github.sinaweibosdk:core:12.5.0@aar'//新浪微博官方SDK依赖库,必选

这里要注意:QQ的官方依赖包,必须自己手动下载,然后拷贝到app的libs目录下,笔者去QQ开放平台下载的包:[open_sdk_3.5.13.83_rc564928_lite.jar],比上面Umeng官网集成文档里的版本:[open_sdk_3.5.12.2_r97423a8_lite.jar] 要新一些,QQ开放平台没有提供历史版本下载。

open_sdk_3.5.13.83_rc564928_lite.jar下地址: https://wiki.connect.qq.com/sdk%e4%b8%8b%e8%bd%bd

3、集成过程中问题

3.1 配置Android Manifest XML

这里官方文档的描述容易引起歧义,笔者在这里也踩了不少坑,所以也记录下。

下面是集成文档的部分内容截图,笔者集成的是7.2.1版,看这个官方文档的描述,那我是应该添加还是不添加WXEntryActity呢?

答案是不添加,因为在引入的 com.umeng.umsdk:share-wx:7.2.1@aar里已经包括一个AndroidManifest.xml文件,见下图,里面已经声明了这个Activity.  所以之前的老版本是需要申明的,现在就不需要了。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.umeng.socialize.weixin"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="12"android:targetSdkVersion="22" /><application><activityandroid:name="${applicationId}.wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:theme="@android:style/Theme.Translucent.NoTitleBar" /></application></manifest>

所以总结下来,之前在老版本里,需要在AndroidManifest.xml里面申明的Activity都基本取消了。下面的代码段是老版本里申明的,目前都注释掉了。如果不放心,可以参考上面笔者举的例子,将引入的第三方包展开,看下里面的AndroidManifest.xml是否已经有了相关申明。

下面是之前旧版本SDK要求在AndroidManifest.xml里面申明的Activity,目前都可以注释掉了:

        <!-- weixin --><!--<activityandroid:name=".wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:theme="@android:style/Theme.Translucent.NoTitleBar" />--><!-- QQ --><!-- 在QQ开放平台申请应用分配的APP ID:101835469 --><!--<activityandroid:name="com.tencent.tauth.AuthActivity"android:launchMode="singleTask"android:noHistory="true"><intent-filter><action android:name="android.intent.action.VIEW"/><category android:name="android.intent.category.DEFAULT"/><category android:name="android.intent.category.BROWSABLE"/><data android:scheme="tencent101835469"/></intent-filter></activity><activityandroid:name="com.tencent.connect.common.AssistActivity"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="orientation|keyboardHidden|screenSize"/>--><!-- sina --><!--<activityandroid:name="com.umeng.socialize.media.WBShareCallBackActivity"android:configChanges="keyboardHidden|orientation"android:exported="false"android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity><activityandroid:name="com.sina.weibo.sdk.share.WBShareCallBackActivity"android:configChanges="keyboardHidden|orientation"android:exported="false"android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity><activityandroid:name="com.sina.weibo.sdk.web.WeiboSdkWebActivity"android:configChanges="keyboardHidden|orientation"android:exported="false"android:windowSoftInputMode="adjustResize"></activity><activityandroid:name="com.sina.weibo.sdk.share.WbShareTransActivity"android:launchMode="singleTask"android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"><intent-filter><action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity>-->

3.2. qqappid缺失报错:

Attribute data@scheme at AndroidManifest.xml requires a placeholder substitution but no value for <qqappid> is provided.

报错原因是因为:com.umeng.umsdk:share-qq:7.2.1的AndroidManifest文件里含有文本:

<data android:scheme="tencent${qqappid}" />

如下图:

解决方案:在app的build.gradle里添加在QQ开发平台申请的app key:

android {defaultConfig {manifestPlaceholders = [qqappid: "12345678"] }
}

3.3 QQ授权代码

//QQ官方sdk授权
//目前采用的是v7.2.1的版本,经测试,不加上授权代码,点击分分享会提示错误toast:
//分享失败错误码: 2003 错误信息:分享失败----用户未授权,暂时无法使用QQ登录及分享等功能
//分享v7.2.0 SDK中的QQ SDK版本是v3.5.12,暂时只支持离线引入jar包和官方依赖库,并且需要调用授权api才可以正常使用授权和分享功能
Tencent.setIsPermissionGranted(true);

3.4  微博分享 [compileSdkVersion = 29]

分享的文档里提到:新浪微博SDK升级到分享7.1.4版本及以上,项目compileSdkVersion的版本必须在29以上,笔者的compileSdkVersion为26,在build过程中会报错,改成29就正常了:

AAPT: error: attribute android:requestLegacyExternalStorage not found.

市场监管新规下Android接入的友盟Umeng移动统计/推送/分享SDK过程问题总结相关推荐

  1. 商城变伤城?淘宝新规下中关村商家百态

    今年6月中旬,阿里巴巴集团宣布将淘宝分拆成三家独立运营的公司,分别为淘宝网(C2C业务).淘宝商城(B2C)以及一淘网(搜索),在这项改革后,阿里巴巴集团董事局主席马云表示:"为了能够创造更 ...

  2. 基于大数据应用探索“互联网+卷烟市场监管”新模式

    "互联网+卷烟市场监管"新模式构建思路 卷烟市场监管四级预警处理机制 随着大数据和互联网快速发展,如何通过大数据的应用,创新卷烟市场监管模式已成为现阶段烟草专卖部门亟待解决的问题. ...

  3. android版本10好不好,一加正式推送Android 10系统 流畅性怎么样

    近日,一加正式推送Android 10系统,不知道流畅性如何呢? 一加官方推特正式宣布Android 10系统已进行阶段性推送,从今天开始一加7和一加7 Pro手机用户将会陆续收到氧OS系统的更新,国 ...

  4. miui7开发版 Android6.0,Android 6.0 MIUI7开发版内测开始推送:

    原标题:Android 6.0 MIUI7开发版内测开始推送: 前瞻科技 1 月 7 日讯:Android 6.0 系统推出至今已经有几个月了,小米用户也一直在吐槽基于 Android 6.0 MIU ...

  5. React-native之友盟(UMeng)推送集成(超详细)(android版)----------小白的天堂

    React-native之友盟(UMeng)推送集成(超详细)(android版) 集成环境: React-native: 0.61.5 Umeng push sdk:6.0.5 测试环境: Andr ...

  6. iOS和Android即时通讯开发时后台实时消息推送的原理和区别

    iOS和Android上的实时消息推送差异很大,往小了说是技术实现的差异,往大了说是系统实现理念的不同.实时消息推送在移动端互联网时代很平常,也很重要,它的存在让智能终端真正成为全时信息传播的工具.本 ...

  7. Android集成Huawei PUSH(一)——华为推送服务简介

    Android集成Huawei PUSH(一)--华为推送服务简介 一.华为推送服务简介 华为推送服务(Huawei PUSH)是华为为开发者提供的消息推送平台,创建了一条从云端到用户客户端的消息推送 ...

  8. Android Studio 使用友盟进行多渠道打包

    今天给小伙伴们讲一讲Android Studio 使用友盟进行多渠道打包 首先需要去友盟官网注册开发者账号,然后创建运用拿到appkey 在清单文件中添加权限并配置友盟 <?xml versio ...

  9. 利用大数据挖掘创新市场监管新方式

    加强和完善市场监管,既是政府职能转变的重要方向,也是维护市场公平竞争.充分激发市场活力和创造力的重要保障,更是国家治理体系和治理能力现代化的重要任务."十三五"时期,我国市场监管面 ...

最新文章

  1. Hudson神奇的环境变量
  2. 干货 | 只有100个标记数据,如何精确分类400万用户评论?
  3. iis7.5支持html5,IIS7.5 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面...
  4. ALE IDoc RFC of SAP
  5. ubuntu启动进程笔记
  6. linux中常用的头文件
  7. 请求zabbix_快速部署zabbix
  8. cad2014打开文件崩溃_CAD加载自定义文件失败的拯救
  9. 少有人走的路--心智成熟的旅程
  10. HDS VSP G系列存储管理平台MPC安装
  11. linux判断三个数大小程序,几个shell程序设计小知识(shell常识部分)
  12. 升级macOS Catalina 后辅助功能空白无法添加的问题
  13. 服务器芯片和一般电脑芯片的区别,服务器CPU和PC的CPU区别
  14. 用matlab抽奖,现在社会上销售彩票的很多。一家三口在抽奖时,常常喜欢让孩子来抽,请问这是遵循了什么决策原则(   )...
  15. 收到垃圾广告短信,回复“T”退订,完全没用怎么办?
  16. 微信小游戏 腾讯课堂《白鹭教育 - 成语大挑战小游戏开发》学习笔记
  17. Python神器!只需一行代码,纯文本秒变Markdown!
  18. android studio ionic,Android studio 运行打包 Ionic 项目
  19. 撸一个自动换壁纸桌面应用
  20. Python爬虫之如何爬取抖音小姐姐的视频

热门文章

  1. Oracle中的TIMESTAMP类型解读(TIMESTAMP存储格式)
  2. 字体设计:五种常用的字体修改方法,让你的文字更好看
  3. Linux -- 项目服务部署学习
  4. 隧道二衬钢筋(一键生成)
  5. 启动模式,BOOT0和BOOT1详解
  6. STM32单片机的启动模式 三种BOOT模式介绍
  7. 逍遥安卓能安装在虚拟服务器,逍遥安卓模拟器安装环境有哪些要求?
  8. python环境搭建.
  9. 地下城英雄 java_英雄小组
  10. 【系统集成项目管理】之项目质量管理