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

集成Report Portal时Appium抛出NoSuchMethodError异常求助

解决方案:Guava版本冲突导致的NoSuchMethodError

这个异常是Guava版本冲突引发的:ImmutableList.toImmutableList()是Guava 21及以上版本才新增的方法,而你的项目中存在低版本Guava依赖,导致Appium Java Client调用该方法时找不到对应实现。

以下是具体解决步骤:

  • 第一步:排查依赖树,定位冲突源
    用构建工具命令查看项目依赖树,找出引入低版本Guava的依赖:

    • Maven:执行 mvn dependency:tree
    • Gradle:执行 ./gradlew dependencies
      在输出结果里搜索com.google.guava:guava,定位携带低版本(如20.x及以下)的依赖项。
  • 第二步:强制统一Guava版本
    在项目的依赖管理中指定一个兼容的高版本Guava(建议28.1-jre或更高,需和你使用的Appium版本匹配):

    • Maven(在pom.xml的<dependencyManagement>中添加):
      <dependencyManagement>
          <dependencies>
              <dependency>
                  <groupId>com.google.guava</groupId>
                  <artifactId>guava</artifactId>
                  <version>28.1-jre</version>
              </dependency>
          </dependencies>
      </dependencyManagement>
      
    • Gradle(在build.gradle中添加):
      configurations.all {
          resolutionStrategy.force 'com.google.guava:guava:28.1-jre'
      }
      
  • 第三步:排除冲突依赖(可选)
    如果强制版本后仍有问题,找到引入低版本Guava的依赖(比如Report Portal的子依赖),直接排除它的Guava依赖:

    <dependency>
        <groupId>com.epam.reportportal</groupId>
        <artifactId>reportportal-testng</artifactId>
        <version>你的Report Portal版本</version>
        <exclusions>
            <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • 第四步:验证兼容性
    确保Appium Java Client版本和指定的Guava版本兼容,比如Appium 7.x系列推荐搭配Guava 26+,可参考Appium官方文档确认对应版本要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:23:03