org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':sonar'

Hey Team,
I’m new to sonarqube usage and i’m getting this build failure, anyone with prior knowledge about it could help me solve it.
Thanks

Failure 1 of 1The :sonar task failed.View task in console log
Could not resolve all files for configuration ':androidTestTools:debugCompileClasspath'.
> Failed to transform domain.jar (project :domain) to match attributes {artifactType=android-classes-jar, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.jvm.environment=standard-jvm, org.gradle.jvm.version=17, org.gradle.libraryelements=jar, org.gradle.usage=java-api, org.jetbrains.kotlin.platform.type=jvm}.
  > Execution failed for JetifyTransform: /Users/fenix2/Documents/Dev/Engie/paygeeapp/domain/build/libs/domain.jar.
    > Transform's input file does not exist: /Users/fenix2/Documents/Dev/Engie/paygeeapp/domain/build/libs/domain.jar. (See https://issuetracker.google.com/issues/158753935)
Exception
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':sonar'.	
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:38)	
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)	
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)	
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)	
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)	
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)	
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)	
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)	
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)	
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)	
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)	
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)	
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)	
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)	
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)	
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)	
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)	
at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:80)	
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)	
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)	
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)	
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)	
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)	
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)	
Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':androidTestTools:debugCompileClasspath'.	
at org.gradle.api.internal.artifacts.ResolveExceptionContextualizer.mapFailure(ResolveExceptionContextualizer.java:81)	
•••
at org.sonarqube.gradle.AndroidUtils.populateSonarQubeProps(AndroidUtils.java:348)	
at org.sonarqube.gradle.AndroidUtils.configureForAndroid(AndroidUtils.java:110)	
at org.sonarqube.gradle.AndroidUtils.configureForAndroid(AndroidUtils.java:87)	
at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:105)	
at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:147)	
at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:90)	
at org.sonarqube.gradle.SonarQubePlugin.lambda$configureTask$2(SonarQubePlugin.java:101)	
•••
Caused by: org.gradle.api.internal.artifacts.transform.TransformException: Failed to transform domain.jar (project :domain) to match attributes {artifactType=android-classes-jar, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.jvm.environment=standard-jvm, org.gradle.jvm.version=17, org.gradle.libraryelements=jar, org.gradle.usage=java-api, org.jetbrains.kotlin.platform.type=jvm}.	
at org.gradle.api.internal.artifacts.transform.TransformedProjectArtifactSet.visit(TransformedProjectArtifactSet.java:87)	
•••
at org.sonarqube.gradle.AndroidUtils.populateSonarQubeProps(AndroidUtils.java:348)	
at org.sonarqube.gradle.AndroidUtils.configureForAndroid(AndroidUtils.java:110)	
at org.sonarqube.gradle.AndroidUtils.configureForAndroid(AndroidUtils.java:87)	
at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:105)	
at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:147)	
at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:90)	
at org.sonarqube.gradle.SonarQubePlugin.lambda$configureTask$2(SonarQubePlugin.java:101)	
•••
Caused by: org.gradle.api.internal.artifacts.transform.TransformException: Execution failed for JetifyTransform: /Users/fenix2/Documents/Dev/Engie/paygeeapp/domain/build/libs/domain.jar.	
at org.gradle.api.internal.artifacts.transform.DefaultTransformInvocationFactory.lambda$createInvocation$1(DefaultTransformInvocationFactory.java:148)	
•••
at org.sonarqube.gradle.AndroidUtils.populateSonarQubeProps(AndroidUtils.java:348)	
at org.sonarqube.gradle.AndroidUtils.configureForAndroid(AndroidUtils.java:110)	
at org.sonarqube.gradle.AndroidUtils.configureForAndroid(AndroidUtils.java:87)	
at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:105)	
at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:147)	
at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:90)	
at org.sonarqube.gradle.SonarQubePlugin.lambda$configureTask$2(SonarQubePlugin.java:101)	
•••
Caused by: java.lang.IllegalStateException: Transform's input file does not exist: /Users/fenix2/Documents/Dev/Engie/paygeeapp/domain/build/libs/domain.jar. (See https://issuetracker.google.com/issues/158753935)	
at com.android.build.gradle.internal.dependency.JetifyTransform.transform(JetifyTransform.kt:100)	
•••
at org.sonarqube.gradle.AndroidUtils.populateSonarQubeProps(AndroidUtils.java:348)	
at org.sonarqube.gradle.AndroidUtils.configureForAndroid(AndroidUtils.java:110)	
at org.sonarqube.gradle.AndroidUtils.configureForAndroid(AndroidUtils.java:87)	
at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:105)	
at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:147)	
at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:90)	
at org.sonarqube.gradle.SonarQubePlugin.lambda$configureTask$2(SonarQubePlugin.java:101)

Did you do what the error suggests?
It suggests to go to Google Issue Tracker.
There is some advice and an instruction what to do if that did not help.

I did follow and it helped me, thanks
However now getting a new error concerning jacoco

Unable to find method ''void org.gradle.api.reporting.ConfigurableReport.setEnabled(boolean)''
'void org.gradle.api.reporting.ConfigurableReport.setEnabled(boolean)'

Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)

Re-download dependencies and sync project (requires network)
The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.

Stop Gradle build processes (requires restart)
Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.

In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

here is my jacoco.gradle file

apply plugin: 'jacoco'

jacoco {
    toolVersion = "0.8.11"
    reportsDirectory = layout.buildDirectory.dir("reports/jacoco")
}

private static boolean isAndroidModule(Project project) {
    boolean isAndroidLibrary = project.plugins.hasPlugin('com.android.library')
    boolean isAndroidApp = project.plugins.hasPlugin('com.android.application')
    return isAndroidLibrary || isAndroidApp
}
afterEvaluate { project ->
    if (isAndroidModule(project)) setupAndroidReporting()
    else setupKotlinReporting()
}
def setupKotlinReporting() {
    jacocoTestReport {
        dependsOn test
        reports {
            xml.required.set(true)
            html.required.set(true)
            html.outputLocation.set(layout.buildDirectory.dir("/coverage-report"))
        }
    }
}
def setupAndroidReporting() {
    tasks.withType(Test).configureEach {
        jacoco.includeNoLocationClasses true
        jacoco.excludes = ["jdk.internal.*"]
        finalizedBy "jacocoTestReport"

    }
    tasks.register("jacocoTestReport", JacocoReport){
        dependsOn "testDebugUnitTest"
        reports {
            xml.required.set(true)
            html.required.set(true)
            csv.required.set(false)
        }
    }
        // Change as needed
        def fileFilter = [
                '**/*App.*',
                '**/*Application.*',
                '**/*Activity.*',
                '**/*Fragment.*',
                '**/*JsonAdapter.*', // adapters generated by Moshi
                '**/di/**',
                '**/*Dagger.*'
        ]
        def debugTree = fileTree(
                dir: "$layout.buildDirectory/tmp/kotlin-classes/debug",
                excludes: fileFilter
        )
        def mainSrc = "$projectDir/src/main/java"
        sourceDirectories.from = files([mainSrc])
        classDirectories.from = files([debugTree])
        executionData.from = fileTree(
                dir: project.layout.buildDirectory,
                includes: [
                        'jacoco/testDebugUnitTest.exec',
                        'outputs/code-coverage/connected/*coverage.ec'
                ]
        )
    }

Can you share a build --scan URL?

here is the build --scan url
https://gradle.com/s/fd2jth4nadalw

Your de.mannodermaus.android-junit5 plugin is version 1.6.2.0 this is 4 years old and not compatible with Gradle 8. 1.8.1.0 fixed this specific problem. You should use the latest, which is 1.10.0.0.

1 Like

Let me update it and revert back to you ASAP

The issue I’m currently getting is now this below

Caused by: org.gradle.api.InvalidUserDataException: The task 'jacocoTestReport' (org.gradle.api.DefaultTask) is not a subclass of the given type (org.gradle.testing.jacoco.tasks.JacocoReport).

here is the jacoco gradle

apply plugin: 'jacoco'

jacoco {
    toolVersion = "0.8.11"
//    reportsDir = layout.buildDirectory.dir("reports/jacoco")
}

private static boolean isAndroidModule(Project project) {
    boolean isAndroidLibrary = project.plugins.hasPlugin('com.android.library')
    boolean isAndroidApp = project.plugins.hasPlugin('com.android.application')
    return isAndroidLibrary || isAndroidApp
}
afterEvaluate { project ->
    if (isAndroidModule(project)) setupAndroidReporting()
    else setupKotlinReporting()
}
def setupKotlinReporting() {
    jacocoTestReport {
        dependsOn test
        reports {
            xml.required.set(true)
            html.required.set(true)
            html.outputLocation.set(layout.buildDirectory.dir("/coverage-report"))
        }
    }
}
def setupAndroidReporting() {
    tasks.withType(Test).configureEach {
        jacoco.includeNoLocationClasses true
        jacoco.excludes = ["jdk.internal.*"]
        finalizedBy "jacocoTestReport"

    }
    tasks.named("jacocoTestReport", JacocoReport){
        dependsOn "testDebugUnitTest"
        reports {
            xml.required.set(true)
            html.required.set(true)
            csv.required.set(false)
        }
    }
        // Change as needed
        def fileFilter = [
                '**/*App.*',
                '**/*Application.*',
                '**/*Activity.*',
                '**/*Fragment.*',
                '**/*JsonAdapter.*', // adapters generated by Moshi
                '**/di/**',
                '**/*Dagger.*'
        ]
        def debugTree = fileTree(
                dir: "$layout.buildDirectory/tmp/kotlin-classes/debug",
                excludes: fileFilter
        )
        def mainSrc = "$projectDir/src/main/java"
        sourceDirectories.from = files([mainSrc])
        classDirectories.from = files([debugTree])
        executionData.from = fileTree(
                dir: project.layout.buildDirectory,
                includes: [
                        'jacoco/testDebugUnitTest.exec',
                        'outputs/code-coverage/connected/*coverage.ec'
                ]
        )
    }

Just as the error message says.
You try to configure a task named jacocoTestReport with type JacocoReport.
It finds a task with that name, but that task does not have the expected type.

1 Like