WPS二次开发系列:Gradle版本、AGP插件与Java版本的对应关系
背景
最近有体验SDK的同学反馈接入SDK出现报错,最终定位到原因为接入的宿主app项目的gradle版本过低导致,SDK兼容支持了android11的特性,需要对应的gradle插件为支持android11的版本。
现象

解决方案
将gradle版本升级至支持android11的插件版本即可,对此google官方的引文如下
4.0.1(2020 年 7 月)
本次要更新支持与 Android 11 中软件包可见性的新默认设置和功能兼容。
在以前的 Android 版本中,可以查看设备上安装的所有应用的列表。从 Android 11(API 级别 30)开始,默认情况下,应用只能访问经过过滤的已安装软件包列表。如需查看系统上更广泛的应用列表,您现在需要在应用或库的 Android 清单中添加 <queries> 元素。
Android Gradle 插件 4.1 及更高版本已与新的 <queries> 声明兼容;不过,较低的版本不兼容。如果您添加 <queries> 元素或者开始依赖于支持以 Android 11 为目标平台的库或 SDK,在构建应用时可能会遇到清单合并错误。
为了解决此问题,我们将针对 AGP 3.3 及更高版本发布一组补丁程序。如果您使用的是旧版 AGP,请升级到以下某个版本:
| 如果您使用的是以下AGP 版本 | 请升级到 |
| 4.0.* | 4.0.1 |
| 3.6.* | 3.6.4 |
| 3.5.* | 3.5.4 |
| 3.4.* | 3.4.3 |
| 3.3.* | 3.3.3 |
关于WPS 二次开发SDK可以查看WPS二次开发系列:快速了解WPS SDK功能介绍哦!
申请方式如下:
通过向WPS官方发送邮件申请,审批通过后即可获取集成相关资料,详细参见
邮件模板:
发起人:有需要申请接入WPS移动端的企业或者个人
邮件主题: XXX公司XXX项目---WPS Android端 SDK二次开发集成申请
邮件发送: m_open_sdk@wps.cn
邮件内容:
请明确包含申请项目背景规模、集成应用第三方APP包名, 具体需求 、集成周期等
更多需求可以通过 WPS 二次开发群(QQ:250325397)进行咨询
更多知识扩展
gradle是什么
- Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置
- 配置文件位置:项目根目录->gradle 文件夹->wrapper->gradle-wrapper.properties
#Mon May 08 14:27:02 CST 2023
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME AGP(AndroidStudio Gradle Plugin)插件是什么
- AndroidStudio用于开发Android项目的gradle插件,它一边调用 Gradle本身的代码和批处理工具来构建项目,一边调用Android SDK的编译、打包功能。由于需要调用andriod,sdk的编译打包功能,所以该插件需要关连 Android SDK Build Tools Version
- 为何需要?由于gradle不指是为android提供构建的也为其它c++等提供构建。所以需要针对安卓的插件。
- Gradle插件会有版本号,一般和androidStudio的版本一致。每个版本号又对应有一个或一些 Gradle发行版本
- 配置位置:File->Project Structrue

Android SDK Build Tools Version是什么
- Build Tools Version为AGP提供的版本构建工具,一般由AS自动生成
- 位置:module-> build.gradle
android {buildToolsVersion "29.0.2"...
} Gradle及插件版本支持映射
| 插件版本 | 所需的最低 Gradle 版本 | 支持的java版本 |
| 8.4(Alpha 版) | 8.6-rc-1 | |
| 8.3 | 8.4 | <= 21 |
| 8.2 | 8.2 | <= 20 |
| 8.1 | 8.0 | |
| 8.0 | 8.0 | |
| 7.4 | 7.5 | <= 18 |
| 7.3 | 7.4 | |
| 7.2 | 7.3.3 | <= 17 |
| 7.1 | 7.2 | |
| 7.0 | 7.0 | <= 16 |
| 4.2.0+ | 6.7.1 | <= 15 |
| 4.1.0+ | 6.5+ | <= 14 |
| 4.0.0+ | 6.1.1+ | <= 13 |
| 3.6.0 - 3.6.4 | 5.6.4+ | |
| 3.5.0 - 3.5.4 | 5.4.1+ | <= 12 |
| 3.4.0 - 3.4.3 | 5.1.1+ | <= 11 |
| 3.3.0 - 3.3.3 | 4.10.1+ | |
| 3.2.0 - 3.2.1 | 4.6+ | <= 10 |
| 3.1.0+ | 4.4+ | |
| 3.0.0+ | 4.1+ | <= 9 |
| 2.3.0+ | 3.3+ | |
| 2.1.3 - 2.2.3 | 2.14.1 - 3.5 | |
| 2.0.0 - 2.1.2 | 2.10 - 2.13 | <= 8 |
| 1.5.0 | 2.2.1 - 2.13 | |
| 1.2.0 - 1.3.1 | 2.2.1 - 2.9 | |
| 1.0.0 - 1.1.3 | 2.2.1 - 2.3 |
参考地址:
Android Gradle插件
Android Gradle 插件历史版本介绍
Gradle版本发布
相关文章:
WPS二次开发系列:Gradle版本、AGP插件与Java版本的对应关系
背景 最近有体验SDK的同学反馈接入SDK出现报错,最终定位到原因为接入的宿主app项目的gradle版本过低导致,SDK兼容支持了android11的特性,需要对应的gradle插件为支持android11的版本。 现象 解决方案 将gradle版本升级至支持android11的插件版…...
绿联 安装MariaDB数据库用于Seatable服务
绿联 安装MariaDB数据库用于Seatable服务 MariaDB MariaDB 是一个流行的开源关系型数据库管理系统(RDBMS),它是MySQL的一个分支,提供了丰富的功能和性能,适用于各种应用场景。 核心功能 SQL支持: MariaDB完全支持SQL&a…...
Spark, Storm, Flink简介
目录 1.Spark VS Storm2.Storm VS Flink 本文主要介绍Spark, Storm, Flink的区别。 1.Spark VS Storm Spark和Storm都是大数据处理框架,但它们在设计理念和使用场景上有一些区别: 实时性:Storm是一个实时计算框架,适合需要实时…...
【攻防世界】mfw(.git文件泄露)
首先进入题目环境,检查页面、页面源代码、以及URL: 发现页面无异常。 使用 dirsearch 扫描网站,检查是否存在可访问的文件或者文件泄露: 发现 可访问界面/templates/ 以及 .git文件泄露,故使用 GItHack 来查看泄露的 …...
递归神经网络(Recursive Neural Networks)
递归神经网络(Recursive Neural Networks)是一种特殊的神经网络,它们通过处理具有树形结构的数据来捕获数据的深层次关系,尤其是在自然语言处理和计算机视觉中的一些应用,如语法分析和场景理解。 1. 理解基本概念和背…...
【leetcode面试经典150题】29.三数之和(C++)
【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…...
ThinkPHP审计(1) 不安全的SQL注入PHP反序列化链子phar利用简单的CMS审计实例
ThinkPHP代码审计(1) 不安全的SQL注入&PHP反序列化链子phar利用&简单的CMS审计实例 文章目录 ThinkPHP代码审计(1) 不安全的SQL注入&PHP反序列化链子phar利用&简单的CMS审计实例一.Thinkphp5不安全的SQL写法二.Thinkphp3 SQL注入三.Thinkphp链5.1.x结合phar实现…...
Centos中一些有趣的命令
目录 1.sl 小火车 2. cowsay 会说话的牛 3.toilet/figlet 图形化输出 4.aafire 小火焰 5.linux_logo 显示系统logo 1.sl 小火车 yum install sl 2. cowsay 会说话的牛 yum install cowsay 3.toilet/figlet 图形化输出 yum install toilet yum install figlet 4.aafire 小火…...
elementUI2
ElementUI 图片引用查询表单表格展示新增修改详情图表 图片引用 <img :src"logo" width"100%" height"100%"/>import logoImg from /assets/logo/home.pngdata() {return {logo: logoImg,}}查询表单 <el-form :model"queryParams…...
Python 爬虫基础——http请求和http响应
写本篇文章,我认为是能把自己所理解的内容分享出来,说不定就有和我一样有这样思维的共同者,希望本篇文章能帮助大家!✨✨ 文章目录 一、 🌈python介绍和分析二、 🌈http请求三、 🌈http响应四、…...
【Hadoop】Hive导入导出数据指南
穿新衣吧 剪新发型呀 轻松一下Windows98 打扮漂亮 18岁是天堂 我们的生活甜得像糖 穿新衣吧 剪新发型呀 轻松一下Windows98 以后的路不再会有痛苦 我们的未来该有多酷 🎵 房东的猫《new boy》 Apache Hive 是一个基于Hadoop的数据仓库工具&…...
Mybatis 执行批量插入
首先,创建一个简单的 insert 语句: <insert id”insertname”>insert into names (name) values (#{value}) </insert>然后在 java 代码中像下面这样执行批处理插入: list < string > names new arraylist(); names.add(“fred”); names.add(“barney”)…...
vivado 使用基本触发器模式
使用基本触发器模式 基本触发器模式用于描述触发条件 , 即由参与其中的调试探针比较器组成的全局布尔公式。当“触发器模式 (Trigger Mode) ”设置为 BASIC_ONLY 或 BASIC_OR_TRIG_IN 时 , 即启用基本触发器模式。使用“基本触发器设置 (Basic Trig…...
Chrome 浏览器无法保存或自动填充密码
Chrome 浏览器无法保存或自动填充密码 分类 平时使用 Chrome 浏览器都会对网站的用户名密码自动填充,今天发现突然不行了,找到一个解决办法: 1、退出 Chrome 浏览器。2、打开 Chrome 安装目录下的的 Profile 目录,删除 Login Da…...
C语言面试指针辨析
1. const int *p int const *p p可以改变,*p不可以改变 p可以指向任意空间,但无法利用p修改指针空间的值 2. int *const p p不能改变,*p可以改变 3. const int *const p int const *const p p和*p都不能改变 4. 面试问题 将内存地址为0x2…...
YOLOV5 分类:利用yolov5进行图像分类
1、前言 之前介绍了yolov5的目标检测示例,这次将介绍yolov5的分类展示 目标检测:YOLOv5 项目:训练代码和参数详细介绍(train)_yolov5训练代码的详解-CSDN博客 yolov5和其他网络的性能对比 yolov5分类的代码部分在这 2、数据集准备 yolov5分类的数据集就是常规的摆放方式…...
Golang | Leetcode Golang题解之第16题最接近的三数之和
题目: 题解: func threeSumClosest(nums []int, target int) int {sort.Ints(nums)var (n len(nums)best math.MaxInt32)// 根据差值的绝对值来更新答案update : func(cur int) {if abs(cur - target) < abs(best - target) {best cur}}// 枚举 a…...
React添加到现有项目
1.检查现有项目的根目录下是否有package.json文件 如果没有,则在项目的根目录下初始化一个package.json配置文件 2.在根目录下安装react和react-dom依赖 npm install --save react react-dom react-scripts安装成功后,react、react-dom以及react-scr…...
java 邮件发送表格
邮件发送表格 问题导入效果图 实现方案1. 拼接HTML文件(不推荐)2. excel 转HTML使用工具类来转化依赖工具类代码示例 使用已工具包 如 aspose-cells依赖代码示例 3.使用模板生成流程准备模板工具类代码示例 问题导入 在一些定时任务中,经常会…...
鸿蒙ArkTS小短剧开源项目进行中
鸿蒙小短剧开源项目进行中 短剧项目名称:CCShort-TV 短剧项目名称:CCShort-TV 使用ArtTS语言,API9以上,HarmonyOS系统的短剧开源代码,使用GSYVideoPlayer作为核心播放器的小短剧。主要以ArkTS,ArkUI编写为…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
