由Android10适配到Android12时遇到相关编译失败问题

news2024/10/7 8:31:56

最近Android系统各大应用商店联合发出公告,处于个人隐私安全考虑,强制APP适配到Android 11及以上版本。下面是其中应用市场的公告(顺带提醒没适配的同学):
image.png
适配前的开发环境

名称版本
Android studioGiraffe | 2022.3.1
build.gradle配置的compileOptionsJDK 1.8
build.gradle配置的kotlinOptions“1.8”
Gradle JDK版本(通过Project Structure > SDK Location > Gradle Settings配置)JDK 1.8
Android Gradle Plugin版本4.0.0
Gradle版本6.1.1
一、错误:java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE

具体报错信息如下图:
image.png
操作步骤:
小编是直接将compileSdkVersion、buildToolsVersion、targetSdkVersion修改为31后通过编译出现这个错误。

compileSdkVersion: 31,
buildToolsVersion: "31.0.0",
minSdkVersion    : 19,
targetSdkVersion : 31,

错误发生原因:
具体原因暂不太清楚,猜测应该是跟Android的compileSdk和buildTools的版本有关,因为将编译版本降级为30时没出现这个错误。
解决方式:
调整Gradle JDK的版本,将jdk版本由1.8升级到11,再次编译该错误解决。

二、错误:java.lang.NoClassDefFoundError: javax/annotation/Generated

具体报错信息如下图:
image.png
操作步骤:
设置Gradle JDK的版本为11后直接进行编译
错误发生原因:
直观上看是编译时缺少javax/annotation相关的类,仔细分析错误发现涉及到dagger库,初步认定与dagger版本有关。
解决方式:
对dagger版本进行升级,由2.9 -> 2.47

说明:
若不是由引入的第三方库引起可尝试引入javax.annotation-api库,如下:
implementation ‘javax.annotation:javax.annotation-api:1.3.2’
annotationProcessor(“javax.annotation:javax.annotation-api:1.3.2”)

正常以小编的工程把上面两个问题解决就能正常编译打包了,但是强迫症迫使我与时俱进,于是将工程使用的Java版本升级到11,出现了新的错误。

三、错误: 无法访问ViewGroup找不到android.view.ViewGroup的类文件

详细错误如图:
image.png
操作步骤:
设置build.gradle的compileOptions和kotlinOptions 为java 11
错误发生原因:
通过错误可以看出应该跟android库没多少关系,真正的错误原因应该是这个:
org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details
解决方式:
待解决(可能需要升级gradle),等后面有空了再研究下,先把版本适配了。
如已有解决办法的同学欢迎在评论区留言。

扩展:
若有同学不了解gradle JDK和build.gradle中compileOptions的区别的可以参考下面文章:
https://blog.csdn.net/hnjcxy/article/details/122902155


黑暗中摸索不易,若对你有帮助,希望能给个大赞!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/947216.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

行业追踪,2023-08-29

自动复盘 2023-08-29 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

<AMBA总线篇> AXI总线协议介绍

目录 01 AXI协议简介 AXI协议特性 AXI协议传输特性 02 AXI协议架构 AXI协议架构 write transaction(写传输) read tramsaction(读传输) Interface and interconnect 典型的AXI系统拓扑 03 文章总结 大家好,这里是程序员杰克。一名平平无奇的嵌入式软件工程…

requests之post请求data传参和json传参区别

问题描述 在一次接口post测试请求传参异常的记录 print(header)rp requests.post(EvnUrlConfig.getUrl(url),headersheader,datauserDevcieParam)传输到后台服务器报了异常 原因分析: 显而易见我的请求头的content-type类型有异常了,但我明明传的是app…

(Windows )本地连接远程服务器(Linux),免密码登录设置

在使用VScode连接远程服务器时,每次打开都要输入密码,以及使用ssh登录或其它方法登录,都要本地输入密码,这大大降低了使用感受,下面总结了免密码登录的方法,用起来巴适得很,起飞。 目录 PowerSh…

CON021 9200-00006N处理器

时钟速度:时钟速度是处理器的工作频率,通常以赫兹(Hz)表示。它决定了处理器每秒钟可以执行多少个指令。较高的时钟速度通常意味着更快的性能。 核心数:现代处理器通常有多个核心,每个核心都可以独立执行任…

泊松回归和地理加权泊松回归

01 泊松回归 泊松回归(Poisson Regression)是一种广义线性模型,用于建立离散型响应变量(计数数据)与一个或多个预测变量之间的关系。它以法国数学家西蒙丹尼泊松(Simon Denis Poisson)的名字命名,适用于计算“事件发生次数”的概率,比如交通事故发生次数、产品缺陷数…

element-ui分析

目录解析 element ├── github // 存放了elementui贡献指南,issue 和 PR模板 ├── build // 存放打包相关的配置文件 ├── examples // 组件相关示例demo ├── packages // 组件源码 ├── src // 存放入口文件和一些工具辅助函数 ├── test // 单元测试…

CATIA Composer R2023安装教程

软件下载 软件:CATIA Composer版本:2023语言:简体中文大小:1.82G安装环境:Win11/Win10/Win8/Win7硬件要求:CPU2.60GHz 内存8G(或更高)下载通道①百度网盘丨64位下载链接:https://pa…

第三节 函数

第三节 函数 目录 一. 函数是什么?二. C语言中函数的分类1. 库函数:2. 自定义函数 三. 函数的参数1. 实际参数(实参):2. 形式参数(形参): 四&…

【计算机视觉】YOLO 入门:训练 COCO128 数据集

一、COCO128 数据集 我们以最近大热的YOLOv8为例,回顾一下之前的安装过程: %pip install ultralytics import ultralytics ultralytics.checks()这里选择训练的数据集为:COCO128 COCO128是一个小型教程数据集,由COCOtrain2017中…

【pyqt5界面化工具开发-9】触发事件的绑定 信号-槽

目录 0x00 前言: 一、基础代码布局 二、添加逻辑代码 三、触发事件绑定逻辑代码 0x00 前言: 1.信号(signal) 事件(点击、关闭等状态发生改变的触发事件) 2.槽( slot) 捕获信号后--->执行相应的逻辑代码 3.信号-槽 链接 为实现:触发事件…

java-初识Servlet,Tomcat,JDBC

文章目录 前言一、ServletServlet 生命周期Servlet 实例Servlet 过滤器 二、TomcatJDBCJDBC连接数据库实例 总结 前言 java入门须知的重要概念/名词/技术 等 一、Servlet Servlet是Java Web开发中的一个核心组件,它是基于Java语言编写的服务器端程序,…

【CI/CD技术专题】「Docker实战系列」本地进行生成镜像以及标签Tag推送到DockerHub

背景介绍 Docker镜像构建成功后,只要有docker环境就可以使用,但必须将镜像推送到Docker Hub上去。创建的镜像最好要符合Docker Hub的tag要求,因为在Docker Hub注册的用户名是liboware,最后利用docker push命令推送镜像到公共仓库…

2023视觉SLAM的研究改进方向

1. 增加对动态场景的鲁棒性(动态SLAM) 传统的视觉SLAM算法通常假设场景是静态的,这种假设对于动态场景是不适用的。在动态场景中,物体的位置和姿态会发生变化,这会对视觉SLAM算法的精度和鲁棒性造成很大的影响。因此&…

YOLOv5、YOLOv8改进:BoTNet Transformer

目录 1.简介 2.YOLOv5改进 2.1增加以下yolov5s_botnet.yaml文件 2.2common.py配置 2.3 yolo.py配置修改 1.简介 论文地址 Paper 本文提出的BoTNet是一种简单高效的网络,有效的将SA应用到多种视觉任务,如图像识别、目标检测、实例分割任务。通过将R…

(十九)大数据实战——Flume数据采集框架安装部署

前言 本节内容我们主要介绍一下大数据数据采集框架flume的安装部署,Flume 是一款流行的开源分布式系统,用于高效地采集、汇总和传输大规模数据。它主要用于处理大量产生的日志数据和事件流。Flume 支持从各种数据源(如日志文件、消息队列、数…

【C/C++】虚析构 | 抽象类

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

【核磁共振成像】并行采集MRI

目录 一、并行成像二、SENSE重建三、SMASH重建四、灵敏度校准五、AUTO-SMASH和VD-AUTO-SMASH六、GRAPPA重建七、SPACE RIP重建算法八、PILS重建算法九、PRUNO重建算法十、UNFOLD算法 一、并行成像 并行MR成像(pMRI):相位阵列接受线圈不但各有自己专用的接受通道&#xff0c;而且…

ChatGPT⼊门到精通(2):ChatGPT 能为我们做什么

⼀、雇佣免费的⼲活⼩弟 有了ChatGPT后&#xff0c;就好⽐你有了好⼏个帮你免费打⼯的「⼩弟」&#xff0c;他们可以帮你做很多 ⼯作。我简单总结⼀些我⽬前使⽤过的⽐较好的基于ChatGPT的服务和应⽤。 1、总结、分析 当我们在阅读⼀些⽂章和新闻的时候&#xff0c;有的⽂章写…

Redis-监听过期key-JAVA实现方案

一、创建监听配置类 RedisListenerConfig。 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.d…