You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成Azure KeyVault遇LinkageError,求版本冲突排查方案

解决方案

1. 定位未覆盖的依赖冲突

报错显示运行时使用Jackson 2.13.3,但配置强制的是2.13.4,说明存在未被覆盖的依赖源。执行以下Gradle命令生成完整依赖树:

./gradlew app:dependencies --configuration implementation

搜索jackson-core、jackson-databind、jackson-dataformat-xml,找出引入2.13.3版本的依赖库。另外注意azure-sdk-bom优先级高于手动强制版本,可能需要调整BOM版本或移除其对Jackson的版本控制。

2. 修复StAX API版本问题

核心报错是XMLInputFactory缺少指定方法,原因是stax-api:1.0-2版本过旧,该方法在StAX API 1.0.1及以上版本才存在。替换为兼容版本:

implementation group: 'javax.xml.stream', name: 'stax-api', version: '1.0.1'

或直接移除手动引入的stax-api依赖,使用Android系统自带的相关类,避免版本冲突。

3. 简化依赖配置,利用Azure BOM统一管理版本

手动强制大量版本易导致混乱,建议保留azure-sdk-bom并确保其与Azure库版本匹配,移除所有手动的Jackson和Azure Core版本强制,让BOM自动管理版本:

// 引入BOM,放在依赖最前面
implementation platform("com.azure:azure-sdk-bom:1.2.5")

// Azure库无需指定版本,由BOM自动匹配
implementation 'com.azure:azure-security-keyvault-keys'
implementation 'com.azure:azure-security-keyvault-secrets'
implementation 'com.azure:azure-storage-blob'
implementation 'com.azure:azure-identity'
implementation 'com.azure:azure-core-http-netty'

// 非Azure依赖单独指定版本
implementation 'com.microsoft.azure:msal4j:1.13.0'
implementation 'com.microsoft.azure:msal4j-persistence-extension:1.1.0'
implementation 'com.google.guava:guava:27.0.1-android'

4. 移除冲突的旧版Azure存储依赖

同时引入azure-storage:8.6.6(旧版)和azure-storage-blob:12.19.0(新版)会引发大量依赖冲突,直接移除旧版com.microsoft.azure:azure-storage:8.6.6,仅使用新版azure-storage-blob。

5. 验证修复效果

执行./gradlew clean build清理并构建项目,运行App测试。若仍有问题,用以下命令查看具体依赖来源,针对性排除:

./gradlew app:dependencyInsight --dependency jackson-core --configuration implementation

内容的提问来源于stack exchange,提问作者Akash kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 08:04:44