Kotlin Multiplatform项目无法解析co.touchlab:kermit警告如何解决
解决方案
你遇到的警告本质是IDE或Gradle在解析Android变体的依赖索引时出现的异常,由于项目整体可正常构建,说明kermit依赖实际已成功拉取,按以下步骤操作即可消除警告:
- 检查全局仓库配置
确认根目录构建文件的allprojects/dependencyResolutionManagement块的repositories配置已添加mavenCentral,kermit的正式版本全量托管在mavenCentral,需保证测试、AndroidTest等所有源码集的仓库配置一致,不可仅给主源码集单独配置仓库:
// 以build.gradle.kts为例,Groovy写法对应调整即可 dependencyResolutionManagement { repositories { mavenCentral() } }
- 修正KMP项目的依赖声明
不要给Android源集单独声明kermit依赖,统一在commonMain源码集添加依赖即可,kermit已适配KMP元数据发布规则,会自动匹配对应平台的依赖包:
kotlin { sourceSets { val commonMain by getting { dependencies { implementation("co.touchlab:kermit:1.0.2") } } // 其余源码集配置无需改动 } }
- 清理缓存重启同步
绝大多数此类警告都是Android Studio的索引缓存异常导致,按顺序执行以下操作即可:
- 点击顶部菜单栏
File -> Invalidate Caches...,勾选清理文件缓存选项后重启IDE - 重启完成后触发一次Gradle全量同步,再执行
./gradlew clean清理旧构建产物
- 配置构建变体回退规则
如果你给Android模块自定义了特殊构建变体,可添加变体匹配回退规则避免找不到对应变体的依赖:
android { buildTypes { debug { matchingFallbacks += "release" } } }
如果执行以上操作后警告仍然存在但构建完全正常,属于旧版Android Studio对KMP依赖的索引兼容bug,升级Android Studio到Flamingo及以上版本即可彻底修复。
内容的提问来源于stack exchange,提问作者Rahul Rawat
相关产品推荐
相关产品推荐

