Kotlin多平台项目添加Android构建目标时找不到androidMain源集
解决Kotlin多平台中androidMain源集未自动创建的问题
你的问题出在三个关键配置缺失或版本不匹配上,直接导致Android目标的源集无法自动生成,下面是具体修复步骤:
1. 必须应用Android库插件
Kotlin Multiplatform的Android目标依赖Android Gradle插件(AGP),你当前只添加了Kotlin多平台插件,未引入Android插件,Gradle无法识别并初始化Android相关源集。在plugins块中添加Android库插件(因为你开发的是库):
plugins { id("maven-publish") kotlin("multiplatform") version "1.8.0" id("com.android.library") version "7.4.3" // 新增,版本需与Kotlin兼容 }
2. 对齐AGP与Kotlin版本
你使用的Kotlin 1.8.0和AGP 4.2.2版本完全不兼容,这会引发大量初始化异常。Kotlin 1.8.0对应的AGP最低版本为7.3.0,上述配置中使用的7.4.3是经过验证的兼容版本。同时删除buildscript块,当前Gradle推荐通过plugins DSL直接引入插件,无需再通过buildscript配置classpath。
3. 添加Android目标的基础配置
必须在kotlin块外添加android{}配置块,指定Android编译的核心参数,否则Android目标无法完成初始化,源集也不会自动生成:
android { compileSdk = 33 // 根据需求设置SDK版本,如33或34 defaultConfig { minSdk = 21 // 按你的需求设置最低兼容SDK targetSdk = 33 } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } }
修改后的完整配置
将你的build.gradle.kts替换为以下内容:
plugins { id("maven-publish") kotlin("multiplatform") version "1.8.0" id("com.android.library") version "7.4.3" } group = "zzz.xxxx" version = "1.0-SNAPSHOT" repositories { mavenCentral() google() // 新增,AGP需从Google仓库拉取依赖 } android { compileSdk = 33 defaultConfig { minSdk = 21 targetSdk = 33 } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } } kotlin { jvm() linuxX64("linux") ios() android() sourceSets { val commonMain by getting { dependencies { // 你的通用依赖 } } val commonTest by getting { dependencies { implementation(kotlin("test")) } } val jvmMain by getting { dependencies { // JVM平台依赖 } } val androidMain by getting { dependencies { // Android平台专属依赖 } } val jvmTest by getting } }
完成修改后同步Gradle,androidMain源集会自动被识别,你创建的androidMain文件夹也会关联到对应源集。
内容的提问来源于stack exchange,提问作者GD21
相关产品推荐
相关产品推荐

