如何将Android Library依赖添加到Kotlin模块?解决依赖解析失败问题
问题分析与解决方案
你遇到的Could not resolve project :androidlibrary本质是纯Kotlin JVM模块(java-library/kotlin.jvm插件)无法直接依赖Android Library模块,原因是Android Library依赖Android SDK特有的API、资源系统,而纯JVM模块的编译/运行环境是标准JVM,不包含Android相关依赖,两者平台不兼容。
下面分两种场景给出可行方案:
场景1:你的Kotlin模块本就应该是Android模块
如果这个Kotlin模块实际是Android项目的一部分(比如是一个Android库或应用模块),只是错误使用了纯JVM插件,只需修改模块的build.gradle插件配置:
plugins { // 替换成Android库或应用插件,二选一 id 'com.android.library' // 若为Android库模块 // id 'com.android.application' // 若为Android应用模块 id 'org.jetbrains.kotlin.android' } android { compileSdk 34 // 根据你的项目配置调整版本 defaultConfig { minSdk 21 // 按需调整 } } java { sourceCompatibility = JavaVersion.VERSION_1_8 // 建议升级到1.8及以上,1.7已过时 targetCompatibility = JavaVersion.VERSION_1_8 } dependencies { implementation(project(":androidlibrary")) }
修改后同步Gradle,依赖即可正常解析。
场景2:Kotlin模块必须保持纯JVM类型
如果这个Kotlin模块需要保持纯JVM环境(比如用于跨平台共享、非Android工具类等),需要重构代码:
- 新建一个纯Kotlin JVM模块(使用
java-library+kotlin.jvm插件),将Android Library中不依赖Android SDK的通用代码(比如工具类、业务逻辑模型等)迁移到这个新模块。 - 让原Android Library模块依赖这个新的纯JVM模块:
// Android Library的build.gradle dependencies { implementation(project(":common-jvm-module")) } - 让你的Kotlin JVM模块也依赖这个新的纯JVM模块:
// 原Kotlin JVM模块的build.gradle dependencies { implementation(project(":common-jvm-module")) }
这样既实现了代码共享,又避免了纯JVM模块直接依赖Android平台的模块。
额外检查项
如果以上方案仍有问题,先确认两个基础配置:
- 项目根目录的
settings.gradle中是否包含两个模块:include(":androidlibrary") include(":your-kotlin-module-name") // 替换为你的Kotlin模块名称 - 模块名称是否正确,确保
implementation(project(":androidlibrary"))中的模块名和settings.gradle里的一致(注意大小写、拼写)。
内容的提问来源于stack exchange,提问作者mars8
相关产品推荐
相关产品推荐

