KMM库引入报错:未找到匹配的io.github.abhriyaroy:KCrypt:0.0.1变体
问题分析与解决建议
问题根源
从错误日志可以明确看出:你的KCrypt库仅发布了iOS系列的Native平台变体(iosArm64、iosX64、iosSimulatorArm64)以及Common元数据变体,完全没有生成并发布Android(androidJvm)平台的对应变体。当Android端项目尝试依赖该库时,Gradle找不到匹配androidJvm平台类型的构件,因此抛出依赖解析失败的错误。
解决步骤
1. 补全KMM库的Android目标配置
打开KCrypt库项目的build.gradle.kts(或build.gradle)文件,检查kotlin块是否包含Android目标声明:
kotlin { // 必须添加这一行,启用Android平台目标 android() iosX64() iosArm64() iosSimulatorArm64() sourceSets { val commonMain by getting val androidMain by getting val iosX64Main by getting val iosArm64Main by getting val iosSimulatorArm64Main by getting // 其他sourceSet配置... } }
如果之前缺失android(),添加后同步项目,确保Android相关的源码集和构建任务正常生成。
2. 验证发布配置覆盖所有平台
如果你使用maven-publish插件发布,KMM默认会自动配置所有平台的构件发布,但如果有自定义的发布逻辑,需确认Android变体被包含在内:
- 运行本地发布任务
./gradlew publishToMavenLocal - 查看本地Maven仓库(默认路径
~/.m2/repository/io/github/abhriyaroy/KCrypt/)下的构件,确认存在android相关的目录和aar/jar文件。
3. 重新发布到Maven中央仓库
修正配置后,重新执行完整的发布流程:
- 建议发布新版本(比如
0.0.2),避免缓存问题 - 发布完成后,在Maven中央仓库确认构件详情中包含
androidJvm平台的变体
4. 测试依赖解析
在示例项目的shared模块中替换为新版本的依赖:
sourceSets { val commonMain by getting { dependencies { implementation("io.github.abhriyaroy:KCrypt:0.0.2") } } // 其他配置... }
同步Gradle项目,验证依赖解析是否正常完成。
内容的提问来源于stack exchange,提问作者Abhriya Roy
相关产品推荐
相关产品推荐

