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版本发布

相关推荐
阿伟*rui1 小时前
配置管理,雪崩问题分析,sentinel的使用
java·spring boot·sentinel
XiaoLeisj3 小时前
【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
java·开发语言·java-ee
paopaokaka_luck3 小时前
【360】基于springboot的志愿服务管理系统
java·spring boot·后端·spring·毕业设计
dayouziei3 小时前
java的类加载机制的学习
java·学习
Yaml45 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
小小小妮子~5 小时前
Spring Boot详解:从入门到精通
java·spring boot·后端
hong1616885 小时前
Spring Boot中实现多数据源连接和切换的方案
java·spring boot·后端
aloha_7896 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
记录成长java6 小时前
ServletContext,Cookie,HttpSession的使用
java·开发语言·servlet
睡觉谁叫~~~6 小时前
一文解秘Rust如何与Java互操作
java·开发语言·后端·rust