叶柳垂杨
叶柳垂杨
  • 发布:2026-03-10 17:27
  • 更新:2026-03-10 17:27
  • 阅读:12

UTS扫码插件和极光推送插件出现依赖项版本冲突怎么解决?有办法共存两个版本?

分类:uts
错误解决方案

错误描述:App原生语言插件/uts插件 依赖的三方库冲突
解决方案:请根据错误信息修改App原生语言插件/uts插件 依赖的三方库或联系插件作者解决。

FAlLURE: Build failed with an exception,
*what went wrong
Execution failed for task'app:checkReleaseDuplicateClasses'

A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
Duplicate class com.google.android.datatransport.AutoValue_Eventfound in modules transport-api-2.2.1.aar-> jetified-transport-api-2.2.1-runtime(com.google.android.datatransport:transport-api:2.2.1)and transport-api-3.0.0.aar->jetified-transport-
api-3.0.0-runtime(transport-api-3.0.0.aar
Duplicate class com.google.android.datatransport.BuildConfig found in modules transport-api-2.2.1.aar->jetified-transport-api-2.2.1-runtime(com.google.android.datatransport:transport-api:2.2.1) and transport-api-3.0.0.aar->jetified-transport-api-
3.0.0-runtime(transport-api-3.0.0.aar)
Duplicate class com.google.android.datatransport.Encodingfound in modules transport-api-2.2.1.aar->jetified-transport-api_2.2.1-runtime(com.google.android.datatransport:transport-api:2.2.1) and transport-api-3.0.0.aar->jetified-transport-api-3.0.0
runtime(transport-api-3.0.0.aar)
Duplicate class com.google.android.datatransport.Event found in modules transport-api-2.2.1.aar->jetified-transport-api_2.2.1-runtime(com.google.android.datatransport:transport-api:2.2.1) and transport-api-3.0.0.aar->jetified-transport-api-3.0.0
runtime(transport-api-3.0.0.aar)
Duplicate class com.google.android.datatransport.Priority found in modules transport-api-2.2.1.aar ->jetified-transport-api-2.2.1-runtime (com.google.android.datatransport:transport-api:2.2.1) and transport-api3.0.0.aar->jetified-transport-api-3.0.0
runtime(transport-api-3.0.0.aar
Duplicate class com.google.android.datatransport.Transformer found in modules transport-api-2.2.1.aar ->jetified-transport-api_2.2.1-runtime(com.google.android.datatransport:transport-api:2.2.1) and transport-api_3.0.0.aar ->jetified-transport-api-

2026-03-10 17:27 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

问题定位
报错信息表明:

  • UTS扫码插件与极光推送插件同时引入了 com.google.android.datatransport:transport-api 的不同版本(2.2.1 与 3.0.0),导致类重复。
  • Android Gradle 插件在 checkReleaseDuplicateClasses 阶段直接中止了构建。

解决思路

  1. 统一版本:让所有插件都使用同一个版本(推荐 3.0.0,因为 2.x 已较老)。
  2. 无法统一时,通过 Gradle 的 exclude / android-exclude.txt 把低版本 jar/aar 排除掉。
  3. 若插件作者已提供无冲突版本,直接升级插件即可。

具体步骤

方案 A:升级/降级插件,使两者使用同一版本

  • 先查看插件市场或插件文档,确认作者是否已发布适配 transport-api 3.0.0 的新版。
  • 若极光推送插件已自带 3.0.0,而扫码插件仍用 2.2.1,可联系扫码插件作者升级;反之亦然。
  • 升级后重新云打包即可。

方案 B:在项目中强制指定版本(Gradle 依赖约束)
android/app/build.gradle(或 HBuilderX 生成的 app-build.gradle)最外层加入:

configurations.all {  
    resolutionStrategy {  
        force 'com.google.android.datatransport:transport-api:3.0.0'  
    }  
}

这样无论插件声明 2.2.1 还是 3.0.0,最终只保留 3.0.0。

方案 C:使用 android-exclude.txt 排除旧版本
若插件把 transport-api-2.2.1.aar 直接打进插件包,可在项目目录:

nativeplugins/插件名/android-exclude.txt

写入:

transport-api-2.2.1.aar

重新云打包即可让 2.2.1 不参与编译。

注意事项

  • 不可让两个版本同时参与打包,Android 不允许同名类重复。
  • 若排除旧版本后出现 NoClassDefFoundError,说明旧插件代码仍依赖 2.x API,需要插件作者适配 3.x。
  • 鸿蒙 Next 平台不受此冲突影响,但需单独确认鸿蒙插件依赖。

推荐做法
优先联系插件作者统一依赖版本,其次使用 resolutionStrategy 强制 3.0.0,最后才用 exclude 方案。

内容为 AI 生成,仅供参考

要回复问题请先登录注册