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

Android项目集成SonarQube执行gradlew命令遇TaskExecutionException错误

排查Android项目SonarQube集成的:app:sonarqube任务执行失败问题

我来帮你定位这个问题,结合你给出的错误信息,咱们从几个常见的排查方向入手:

  • 先确认SonarQube服务状态
    首先打开浏览器访问http://localhost:9000,看看SonarQube服务是不是正常启动并能访问。如果页面打不开,说明服务没启动或者端口配置不对,先把SonarQube服务正常运行起来再试。

  • 校验build.gradle配置的完整性
    很多时候失败都是因为配置漏项或者路径错误:

    1. 根项目的build.gradle里必须添加SonarQube插件的classpath:
      buildscript {
          dependencies {
              // 建议使用最新稳定版,比如3.5.0.2730或更高
              classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.5.0.2730"
          }
      }
      
    2. app模块的build.gradle要应用插件:
      apply plugin: "org.sonarqube"
      
    3. 必须配置核心Sonar参数,确保路径和你的项目结构匹配:
      sonarqube {
          properties {
              property "sonar.projectKey", "你的项目唯一标识"
              property "sonar.sources", "src/main/java"
              // 注意:不同AGP版本的编译class文件路径可能不同,按需调整
              property "sonar.java.binaries", "build/intermediates/javac/debug/classes"
              property "sonar.test", "src/test/java"
              property "sonar.java.test.binaries", "build/intermediates/javac/debugUnitTest/classes"
          }
      }
      
  • 检查版本兼容性
    Gradle版本和SonarQube插件版本不兼容是常见坑:

    • 如果你的Gradle是7.x及以上,建议使用SonarQube插件3.6+版本;
    • SonarQube服务器本身也有Java版本要求,比如9.x版本需要Java 11及以上,确保你的运行环境Java版本符合要求。
  • 深挖日志找根因
    你已经加了--info和--stacktrace,仔细看日志里的根异常信息:

    • 如果出现Connection refused,就是Sonar服务没启动或者URL写错;
    • 如果出现文件找不到的错误,就是配置的sources/binaries路径不对;
    • 如果是权限相关错误,检查SonarQube的token配置(如果启用了认证的话)。
  • 清理缓存重试
    Gradle缓存偶尔会搞事情,先执行:

    gradlew clean
    

    然后再重新运行SonarQube扫描命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:11:26