关于安卓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-----------------------------------------------------------------------------------