Android升级版本兼容问题
1、JDK的选择
| Android | Java | API and language features supported |
|---|---|---|
| 14 (API 34) | 17 | Core libraries |
| 13 (API 33) | 11 | Core libraries |
| 12 (API 32) | 11 | Java API |
| 11 and lower | Android versions |
https://developer.android.com/build/jdks
The following table lists which version of Gradle is required for each version of the Android Gradle plugin. For the best performance, you should use the latest possible version of both Gradle and the plugin.
| Plugin version | Minimum required Gradle version |
|---|---|
| 8.4 (alpha) | 8.6-rc-1 |
| 8.3 (beta) | 8.4 |
| 8.2 | 8.2 |
| 8.1 | 8.0 |
| 8.0 | 8.0 |
| 7.4 | 7.5 |
The following table lists which version of Android Gradle plugin(AGP) is required for each version of Android Studio.
| Android Studio version | Required AGP version |
|---|---|
| Iguana - 2023.2.1 | 3.2-8.3 |
| Hedgehog - 2023.1.1 | 3.2-8.2 |
| Giraffe - 2022.3.1 | 3.2-8.1 |
| Flamingo - 2022.2.1 | 3.2-8.0 |
| Electric Eel - 2022.1.1 | 3.2-7.4 |
The minimum versions of Android Studio and AGP are as follows:
| API level | Minimum Android Studio version | Minimum AGP version |
|---|---|---|
| 34 | Hedgehog - 2023.1.1 | 8.1.1 |
| 33 | Flamingo - 2022.2.1 | 7.2 |
https://developer.android.com/build/releases/gradle-plugin
Make sure to choose a JDK version that is higher than or equal to the JDK versions used by plugins that you use in your Gradle build. To determine the minimum required JDK version for the Android Gradle Plugin (AGP), see the compatibility table in the release notes.
For example, the Android Gradle Plugin version 8.x requires JDK 17. If you try to run a Gradle build that uses it with an earlier version of the JDK, it reports a message like:
An exception occurred applying plugin request [id: ‘com.android.application’]
Failed to apply plugin ‘com.android.internal.application’.
Android Gradle plugin requires Java 17 to run. You are currently using Java 11.
Your current JDK is located in /usr/local/buildtools/java/jdk11
You can try some of the following options:
- changing the IDE settings.
- changing the JAVA_HOME environment variable.
- changingorg.gradle.java.homeingradle.properties.
相关文章:
Android升级版本兼容问题
1、JDK的选择 AndroidJavaAPI and language features supported14 (API 34)17Core libraries13 (API 33)11Core libraries12 (API 32)11Java API11 and lowerAndroid versions https://developer.android.com/build/jdks The following table lists which version of Gradle…...
微信生成带参数二维码(用户id), 扫码可获取用户id
生成带参数的二维码: https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html 示例代码: /*** 生成带参数的二维码** param userId 用户id* return*/GetMappingRequestMapping("/createTicket/{userId}")pu…...
微信小程序(二十一)css变量-定义页面主题色
注释很详细,直接上代码 上一篇 新增内容: 1.使用css变量 2.消除按钮白块影响 3.修改图标样式 源码: npmTest.json {"navigationStyle": "custom","usingComponents": {//引入vant组件"van-nav-bar"…...
WSL2 Debian系统添加支持SocketCAN
本人最近在使用WSL2,Linux系统选择的是Debian,用起来很不错,感觉可以代替VMware Player虚拟机。 但是WSL2 Debian默认不支持SocketCAN,这就有点坑了,由于本人经常要使用SocketCAN功能,所以决定让Debian支持…...
Redis的五种常用数据结构以及其底层实现
1.字符串 字符串作为Redis中最基础的数据结构,他存储的值可以是任何东西,可以是字符串,数字,二进制,但是字符串存储的值不能超过512M 在Redis中字符串的底层编码是根据值进行改变的 当存储的字符串是一个数字的时候…...
防御保护笔记
防火墙的主要职责在于:控制和防护 --- 安全策略 --- 防火墙可以根据安全策略来抓取流量之 后做出对应的动作。 防火墙分类: 包过滤防火墙: 1,很多安全风险集中在应用层的,所以,仅关注三四层的数据无法做到…...
C++笔记之作用域解析符::和命名空间、作用域的关系
C++笔记之作用域解析符::和命名空间、作用域的关系 —— 杭州 2024-01-26 code review 文章目录 C++笔记之作用域解析符::和命名空间、作用域的关系1.`命名空间`和`作用域`两个术语的联系和区别命名空间(Namespace)作用域(Scope)联系与区别2.`作用域解析符::`和`命名空间`…...
回归预测 | MATLAB实现PSO-GRNN粒子群优化广义回归神经网络多输入单输出预测(含优化前后预测可视化)
回归预测 | MATLAB实现PSO-GRNN粒子群优化广义回归神经网络多输入单输出预测 目录 回归预测 | MATLAB实现PSO-GRNN粒子群优化广义回归神经网络多输入单输出预测预测效果基本介绍程序设计参考资料预测效果 <...
linux安装 黑方容灾备份与恢复系统软件v6.0 代理
1.环境准备 1.1硬件环境 内存>4G,cpu最低双核 1.2把SElinux状态改为Disabled (1)查看SElinux状态 输入getenforce命令 SELinux共有3个状态: enforcing (执行中)、permissive (不执行但…...
STM32第一节——初识STM32
1 硬件介绍 1.1 硬件平台 配套硬件:以野火的STM32 F1霸道开发板为平台,若用的是别的开发板,可自己进行移植。 1.2 什么是STM32 STM32是由意法半导体(STMicroelectronics)公司推出的一系列32位的ARM Cortex-M微控制…...
多场景建模:美团HiNet
HiNet: Novel Multi-Scenario & Multi-Task Learning with Hierarchical Information Extraction 背景: 美团的多场景多任务(ctr、ctcvr) 解决方案 通过分层来分别学习多场景多任务 方案详情 点评:在底层Embedding时用…...
第二百九十三回
文章目录 1. 概念介绍2. 方法与细节2.1 实现方法2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何混合选择多个图片和视频文件"相关的内容,本章回中将介绍如何通过相机获取图片文件.闲话休提,让我们一起Talk Flutter吧。 1. …...
【网络协议分析】使用Wireshark分析UDP协议
一、实验目的 通过使用Wireshark抓取UDP流来分析学习UDP协议,比较TCP与UDP的不同。 二、实验过程 1、使用Wireshark抓取UDP报文流,常见的使用UDP协议的应用有DNS、QQ、在线游戏等。 2、分析抓取到的数据包,比较与TCP协议的异同。 我们选取DN…...
TensorFlow Lite中文本分类在Android上的实践
#1 Tensorflow Lite TensorFlow Lite(后续简称TFL) 是 Google 开发的一个用于移动设备和嵌入式设备的开源库,旨在为移动终端设备提供机器学习推断。它是 TensorFlow 框架的轻量级版本,专门优化了模型的大小和性能,以适应资源受限的移动设备和嵌入式系统。 TFL 提供了一种在移…...
使用vscode查bug
具体操作 修改CMakeList.txt # set(CMAKE_BUILD_TYPE "Release")//注释Release模式 set(CMAKE_BUILD_TYPE "Debug")//设置为Debug模式 # set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -g")//注释*这行代码是用来设置 CMake 构建系统中 Release 模式…...
LC 2846. 边权重均等查询
2846. 边权重均等查询 难度: 困难 题目大意: 现有一棵由 n 个节点组成的无向树,节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] [ui, vi, wi] 表示树中存在一条位于节点 …...
RabbitMQ简单模式和工作模式
RabbitMQ 是一个消息队列中间件,用于在分布式系统中进行消息传递。在 RabbitMQ 中,有几种工作模式,其中简单模式和工作模式是其中两种基本的模式之一。 简单模式(Simple Mode): 在简单模式中,有…...
c语言实战之贪吃蛇
文章目录 前言效果展示游戏用到的图片游戏思路一览游戏前准备一、贪吃蛇、食物、障碍物节点坐标的结构体二、枚举游戏状态、和贪吃蛇的方向三、维护运行的结构体 游戏开始前的初始化一、学习图形库相关知识二、设置背景三、欢迎界面四、初始化贪吃蛇五、生成障碍物六、生成食物…...
Midjourney图片生成描述词记录(今天一天)
抄别人的描述词 /imagine prompt:https://(你的图片地址).jpg Super handsome boy IP by pop mart , green suit, no hair, bald head, Scenes in spring , pastel color , mockup , fine luster , clean background ,3D render , Soft focus , oc , bl…...
类和对象 第五部分第四小节:赋值运算符重载
C编译器至少给一个类添加4个函数 1.默认构造函数无参,函数体为空 2.默认析构函数无参,函数体为空 3.默认拷贝沟早函数,对属性进行值拷贝 4.赋值运算符“operator”,对属性进行值拷贝 如果类中有属性指向堆区,做赋值操作…...
AudioLDM-S与LangGraph:构建音效生成工作流引擎
AudioLDM-S与LangGraph:构建音效生成工作流引擎 1. 引言 想象一下这样的场景:电影制作人需要为一场雨夜追逐戏配乐,传统的工作流程需要先搜索音效库,筛选合适的雨声、脚步声、轮胎摩擦声,然后进行剪辑、混音…...
【2026年携程暑期实习- 3月29日-算法岗-第三题- 双门控序列加权器】(题目+思路+JavaC++Python解析+在线测试)
题目内容 在仅使用 n u m p y / p a n d a s / s c i k i t − l e a r n numpy/pandas/scikit-learn numpy/pandas/...
Cayenne-MQTT-ESP:面向IoT平台的轻量级嵌入式MQTT客户端
1. 项目概述 Cayenne-MQTT-ESP 是一个专为 ESP8266 和 ESP32 平台设计的轻量级 MQTT 客户端库,其核心目标是将嵌入式设备无缝接入 Cayenne IoT 云平台(现为 myDevices IoT Platform),实现双向数据通信与可视化控制。该库并非从零…...
告别NVIDIA?ZLUDA让你的AMD显卡秒变CUDA设备
告别NVIDIA?ZLUDA让你的AMD显卡秒变CUDA设备 【免费下载链接】ZLUDA CUDA on Intel GPUs 项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA 在AI计算和高性能图形处理领域,CUDA生态曾长期被NVIDIA显卡垄断,高昂的硬件成本让许…...
UnrealPakViewer工具解析:UE4资源管理的可视化解决方案
UnrealPakViewer工具解析:UE4资源管理的可视化解决方案 【免费下载链接】UnrealPakViewer 查看 UE4 Pak 文件的图形化工具,支持 UE4 pak/ucas 文件 项目地址: https://gitcode.com/gh_mirrors/un/UnrealPakViewer UnrealPakViewer是一款专为UE4开…...
双目视觉实战:从标定参数到深度图的完整OpenCV实现指南
双目视觉实战:从标定参数到深度图的完整OpenCV实现指南 在计算机视觉领域,双目立体视觉一直是获取三维环境信息的重要技术手段。与激光雷达等主动传感器相比,基于双相机的立体视觉系统具有成本低、数据丰富、易于部署等优势。本文将深入探讨如…...
终极指南:在PC上完美运行PS4游戏的秘密武器
终极指南:在PC上完美运行PS4游戏的秘密武器 【免费下载链接】shadPS4 PS4 emulator for Windows,Linux,MacOS 项目地址: https://gitcode.com/gh_mirrors/shad/shadPS4 你是否曾经梦想过在电脑上畅玩那些只能在PS4上体验的独占大作?今天ÿ…...
从DataBinding到Compose:一个老Android的UI数据绑定演进思考
从DataBinding到Compose:一个老Android的UI数据绑定演进思考 作为一名从Eclipse时代走过来的Android开发者,我见证了UI开发方式的多次变革。从最初手工调用findViewById的繁琐,到ButterKnife的注解简化,再到DataBinding带来的声明…...
别再手动算了!用Matlab RF Toolbox一键搞定S/Z/Y/ABCD参数转换(附3dB电桥实例代码)
射频工程师的救星:Matlab RF Toolbox参数转换全攻略 每次面对S/Z/Y/ABCD参数的手动转换,是不是总有种想摔计算器的冲动?那些复杂的矩阵运算和容易出错的推导过程,简直是在浪费生命。作为一名射频工程师,我深知这种痛苦…...
【第四周】论文精读:Frustratingly Simple Retrieval Improves Challenging, Reasoning-Intensive Benchmarks
极简检索即可大幅刷新高难度推理基准主流观点认为简单RAG无法提升MMLU、MATH、GPQA等高难度推理任务,甚至会损害性能;本文推翻这一共识,证明核心瓶颈并非检索范式,而是缺少高质量、广覆盖、可单机部署的检索库;提出COM…...
