当前位置: 首页 > article >正文

关于安卓升级gradle8.0和jdk17的要点

背景

升着玩

思路

把旧项目,gradle7.0+和jdk11,直接升级到gradle8.0和jdk17。

开发环境

win10,as4+,jdk8+

过程

要点

对于安卓targetVersion的升级要点,没什么好说的,提一下核心的改动点。

安卓12,pendingIntent,蓝牙这两块是重点,pendingIntent可以整合一个工具类,统一创建,统一适配。蓝牙,得判断版本,再去申请权限。

安卓13,图片,视频读取权限变更,这里注意适配一下就好了,可能对于某些音频相关的应用,会有比较大的影响。

过程

首先,在targetVersion升级的过程中,会有:
(1)namespace的申明变动,这个cv解决就好了。
(2)会有buildConfig的失效。这个直接在对应的module,进行下面代码的配置即可。

    buildFeatures{
        buildConfig = true
    }

(3)会有compose版本的兼容问题,这里博主配置如下:

    composeRootDp = [
            //platform('androidx.compose:compose-bom:2022.12.00'),
            'androidx.compose:compose-bom:2024.01.00'
    ]
    composeDep = [
            'androidx.compose.material3:material3',
            'androidx.compose.material:material',
            'androidx.compose.foundation:foundation:1.6.0',
            'androidx.compose.ui:ui',
            'androidx.compose.ui:ui-tooling-preview',
            'androidx.compose.ui:ui-tooling',
            'androidx.compose.ui:ui-test-junit4',
            'androidx.compose.ui:ui-test-manifest',
            'androidx.compose.material:material-icons-core',
            'androidx.compose.material:material-icons-extended',
            'androidx.compose.material3:material3-window-size-class',
            'androidx.activity:activity-compose:1.5.1',
            'androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1',
            "androidx.compose.runtime:runtime:1.7.0", // 或者使用最新版本
            "androidx.compose.runtime:runtime-livedata:1.7.0",// 可选
            'androidx.compose.runtime:runtime-rxjava2:1.7.0',
            'androidx.lifecycle:lifecycle-runtime-ktx:2.7.0',
            'com.google.accompanist:accompanist-swiperefresh:0.34.0',
            'com.airbnb.android:lottie-compose:6.1.0',
    ]

关联的编译版本

            compileSdkVersion: 34,
            buildToolsVersion: "34.0.0",
            minSdkVersion    : 24,
            targetSdkVersion : 34,

(4)签名,打包问题。如果升级了jdk版本,在你进行加固包重签名,多渠道(walle)的时候,也必须用上对应的jdk环境进行操作,否则会失败或者应用闪退。

(5)代码兼容低版本方面,代码如下,博主兼容的是jdk8

    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }

上面就是博主遇到升级gradle8.0和jdk17遇到的要点,有其他的问题欢迎评论区留言。


http://www.kler.cn/a/382226.html

相关文章:

  • 【已解决】黑马点评项目Redis版本替换过程中误删数据库后前端显示出现的问题
  • ARM异常处理 M33
  • LAUNCHXL_F28379D_Workspace_CCS124
  • Java 优化springboot jar 内存 年轻代和老年代的比例 减少垃圾清理耗时 如调整 -XX:NewRatio
  • 在Visual Studio 2022中配置C++计算机视觉库Opencv
  • 解读Makefile中,`=`、`:=`、`?=` 和 `+=`差异
  • python openai 通过Function Call 创建自动化任务
  • GraphRAG本地部署使用及兼容千帆通义
  • 【算法】递归+深搜:814.二叉树剪枝
  • 【大数据】ETL ELT
  • 【MFC编程(三)】消息映射机制分析
  • 国内版Sketchfab平台 - CG美术之家(3D编辑发布篇)
  • 协同过滤——当前推荐技术和算法中使用最广泛和认可度最高的算法之一
  • 在Ubuntu24.04上用nginx启用文件索引服务:autoindex on; 笔记241102
  • 【AI日记】24.11.01 LangChain、openai api和github copilot
  • Naive UI 级联选择器 Cascader的:render-lable怎么使用(Vue3 + TS)(鼠标悬停该条数据的时候展示全部内容)
  • uni-app跨域set-cookie
  • 算法日记 18 day 二叉树
  • Mysql数据库的UDF提权
  • 小张求职记五
  • 【Qt】QVariant.toString().toStdString().data()
  • 引领汽车行业未来,3D数字化技术如何改变汽车行业?
  • springboot - 定时任务
  • FloodFill 算法 专题
  • 【Excel】区域单元格选择(一)
  • Java的Object类常用的方法(详述版本)