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

关于安卓compose在gradle8.0上,版本依赖的问题

在这里插入图片描述

背景

安卓开发中,项目有可能引入compose,这个时候,很容易导致compose版本,与目前的gradle版本不兼容,搞到头大,所以这里特别记录一下,gradle8.0+于compose的版本关联

开发环境

环境
win10
jdk17
gradle8+

实战过程

下面博主,会放出关于gradle8.0和compose配置相关联的一些可行对应版本。

(一)配置项目根部build.gradle

这里需要引入kotlin依赖,而Kotlin依赖,也和gradle是有关联的,以下是博主的全部配置,kotlin版本1.9.25,gradle版本8.5.0,build.gradle文件为groovy。

apply from: "conf.gradle"


buildscript {
    ext.kotlin_version = '1.9.25' // 请检查并使用最新版本
    repositories {
        maven {
            url 'http://192.168.1.178:8151/artifactory/android_group/'
//            url 'http://localhost:8081/artifactory/android_group/'
            allowInsecureProtocol = true
        }
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:8.5.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25"
        classpath 'org.greenrobot:greendao-gradle-plugin:3.3.1'
    }
}

allprojects {
    repositories {
        maven {
            url 'http://192.168.1.178:8151/artifactory/android_group/'
//            url 'http://localhost:8081/artifactory/android_group/'
            allowInsecureProtocol = true
        }
        google()
        mavenCentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}


关于代码远程仓库依赖,这里博主除了本地的artifictory以外,还特别申明了google和mavelCenteal,因为某些依赖,需要google仓库的支持

        google()
        mavenCentral()

以上就是项目根build.gradle配置-----------------------------------

(二)主项目build.gradle配置

理所当然的,主项目也要支持Kotlin,添加如下apply:

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'

引入以下依赖:implementation

"androidx.core:core-ktx:1.7.0"
"org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.10"

上述配置完成后,你的项目就已经支持kotlin了,这个时候要着手配置compose。

为了项目版本管理,这里博主配置了一个config.gradle(old school)的文件,用于版本管理,当然,你们也可以用kt src。这里仅仅方式不一样,结果是一样的。

首先,要platform引入compose整个平台插件依赖(这样省事一点),代码如下图:

api platform('androidx.compose:compose-bom:2024.04.01')

然后就回到了我们日常引入依赖的写法了,具体依赖如下图:

            '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-graphics',
            '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.8.0',
            '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',
            'io.coil-kt:coil-compose:2.6.0',

最后,需要配置支持kotlin版本编译,核心代码如下图:
在这里插入图片描述

 ktComVersion: "1.5.15"

-----------------------------分割线------------------------------------

博主为了省事,就在config.gradle配置了。具体实现如下:

引入config.gradle

在这里插入图片描述

编写config.gradle

在这里插入图片描述

直接在app项目引入即可
    //compose引入
    rootProject.ext.composeDep.each {
        api it
    }
    rootProject.ext.composeRootDp.each {
        api platform(it)
    }

以上就是gradle8+配置compose的流程,配置完成以后,就可以进行compose开发了。

that’s all-----------------------------------------------------------------------------------


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

相关文章:

  • MacOS安装Docker battery-historian
  • Vue 3 中的标签 ref 与 defineExpose:模板引用与组件暴露
  • 笔灵ai写作技术浅析(一)
  • uva 1354 Mobile Computing
  • 【Linux】21.基础IO(3)
  • hexo + Butterfly搭建博客
  • Pyecharts之图表样式深度定制
  • ubuntu无法上网的解决办法
  • 【漫话机器学习系列】061.线性回归参数计算(Finding Linear Regression Parameters)
  • 智能交互革命:论UI-TARS技术突破与未来图景
  • AI刷题-最小化团建熟悉程度和
  • 【java数据结构】HashMapOJ练习题
  • vim的多文件操作
  • 【Rust自学】15.1. 使用Box<T>智能指针来指向堆内存上的数据
  • docker入门——多用户服务器管理(小白)
  • 实战网络安全:渗透测试与防御指南
  • 汽车行业敏捷转型的推动者:ScrumCN的优势与实践
  • GESP2024年3月认证C++六级( 第三部分编程题(1)游戏)
  • 【ES实战】治理项之索引模板相关治理
  • React 前端框架实战教程
  • skynet 源码阅读 -- 「揭秘 Skynet 网络通讯」
  • C语言I/O请使用互斥锁和信号量分别实现5个线程之间的同步
  • java求职学习day17
  • 1.26学习
  • 2025年01月26日Github流行趋势
  • Python3 【正则表达式】:经典示例参考手册