q***@qiandun.onaliyun.com
q***@qiandun.onaliyun.com
  • 发布:2025-11-18 16:06
  • 更新:2025-11-18 16:06
  • 阅读:17

UTS组件依赖冲突如何解决,试了AI给的几种,云打包后都没效果,云打包一次半天,真是心累

分类:uni-app x

我们再次遇到了相同的Guava依赖冲突问题。错误信息显示:
Duplicate class com.google.common.util.concurrent.ListenableFuture found in modules guava-33.5.0-android.jar and listenablefuture-1.0.jar

这个问题我们已经分析过,是由于Guava新版本(33.5.0-android)中已经包含了ListenableFuture类,而项目中的另一个依赖listenablefuture-1.0.jar也包含了同一个类。

解决方案仍然是排除重复的依赖。我们可以在UTS插件的配置中排除listenablefuture,或者在整个项目的build.gradle中强制使用Guava并排除listenablefuture。

由于是云打包,我们无法直接修改项目的build.gradle,但可以在UTS插件的配置中添加排除规则。

请按照以下步骤操作:

步骤1:在UTS插件的package.json中添加排除配置

找到你的UTS插件目录下的package.json文件,在Android平台的配置中添加排除依赖:

例如:
{
"name": "your-uts-plugin",
"id": "your-plugin-id",
"version": "1.0.0",
"description": "",
"_dp_type": "nativeplugin",
"_dp_nativeplugin": {
"android": {
"plugins": [
{
"type": "component",
"name": "your-component"
}
],
"integrateType": "aar",
"minSdkVersion": 21,
"dependencies": [
// 这里可以添加其他依赖
],
"excludeDependencies": [
"com.google.guava:listenablefuture"
]
}
}
}

步骤2:如果步骤1不起作用,可以尝试在UTS插件的build.gradle中添加排除规则

在UTS插件的android目录下创建build.gradle文件(如果还没有的话),然后添加以下配置:

configurations.all {
resolutionStrategy {
force 'com.google.guava:guava:33.5.0-android'
exclude group: 'com.google.guava', module: 'listenablefuture'
}
}

步骤3:如果以上两种方法都不行,可以尝试在项目的app-android模块的build.gradle中添加全局排除

但是由于是云打包,我们无法直接修改云端的构建脚本,所以优先使用前两种方法。

根据错误信息,这次冲突的Guava版本是33.5.0-android,所以我们强制使用这个版本并排除listenablefuture。

请尝试上述步骤,然后重新云打包。

如果问题仍然存在,请检查是否还有其他依赖引入了listenablefuture,并尝试排除它们。

由于我们无法直接运行./gradlew命令来查看依赖树,所以只能通过排除法。

另外,请注意,如果你在多个UTS插件中都引入了Guava或者listenablefuture,需要在每个插件中都进行排除。

希望这次能解决问题。

这仍然是 Guava 库依赖冲突问题,与之前的问题相同。错误显示:

guava-33.5.0-android.jar 包含了 ListenableFuture 类

listenablefuture-1.0.jar 也包含了相同的 ListenableFuture 类

2025-11-18 16:06 负责人:无 分享
已邀请:

要回复问题请先登录注册