添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement . We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account Robolectric failing because not downloading dependencies in Jenkins when using Artifactory #8158 Robolectric failing because not downloading dependencies in Jenkins when using Artifactory #8158 bizzguy opened this issue Apr 18, 2023 · 35 comments

Description

I am using Robolectric as a mocking library for my unit tests. In our environment, we use Artifactory as a repository for saving all dependencies, and I've set up repo properties for Robolectric to access Artifactory in the build.gradle.kts file as follows:

testOptions {
  animationsDisabled = true
  unitTests {
    isIncludeAndroidResources = true
    // Robolectric repo config for artifactory: https://robolectric.org/configuring/
    systemProperty("robolectric.dependency.repo.url", "\${artifactory_contextUrl}")
    systemProperty("robolectric.dependency.repo.username", "\${artifactory_user}")
    systemProperty("robolectric.dependency.repo.password", "\${artifactory_password}")

I've also tried with this property

systemProperty("robolectric.dependency.repo.id", "local")

When I run the unit tests locally through a VPN, everything works fine. However, when I push the code to Jenkins it recompiles the code and reruns the tests, and all the Robolectric tests fail because they can't download the dependencies for Robolectric.

It seems that I haven't configured Robolectric to properly communicate with Artifactory in the Jenkins environment. I've been unable to find a solution, so I'm seeking your guidance on how to resolve this issue.

At the very least, I'd like to enable more detailed logging for Robolectric to see the exact calls being made to Maven. Any suggestions on how to proceed would be greatly appreciated. I've tried to turn on logging with the following but I don't seem to get any additional logging

systemProperty("robolectric.logging.enabled", "true")

Robolectric & Android Version

I'm using Robolectric 4.10-alpha-1

Can you paste the stack traces you are seeing?

All of the logic that fetches the android-all artifacts (the framework impl jars) is here:

https://github.com/robolectric/robolectric/blob/master/plugins/maven-dependency-resolver/src/main/java/org/robolectric/internal/dependency/MavenArtifactFetcher.java

Generally if an exception is thrown, it will terminate the process.

@bizzguy does the test(s) fail when running in Android Studio? If so, you could set a breakpoint in https://github.com/robolectric/robolectric/blob/master/plugins/maven-dependency-resolver/src/main/java/org/robolectric/internal/dependency/MavenArtifactFetcher.java#L62 and trace through to see what happens.

Everything works fine in Android Studio (same gradle files). However, when running in Android Studio I'm also behind a VPN while in Jenkins the build is running on a server inside the company firewall. So it appears to be something about how robolectric is trying to get the dependencies that is different.

Here is the log. And you are right @hoisie there seems to be a problem with MavenArtifactFetcher. I am not able to debug on the server and it works in Android Studio. Is there some more detailed logging I could get that might reveal the problem more?

[2023-04-19T16:25:49.440Z] [ce05e7e74e92430] $ cmd.exe /C "D:\Jenkins\workspace\ce05e7e74e92430\gradlew.bat -Dsonar.pullrequest.key=86 -Dsonar.pullrequest.branch=robo -Dsonar.pullrequest.base=develop --init-script D:/Jenkins/workspace/ce05e7e74e92430@tmp/artifactory/init-artifactory4516379925770622281gradle testDebug artifactoryPublish -b build.gradle && exit %%ERRORLEVEL%%"
[2023-04-19T16:25:49.218Z] Executing command: cmd /c git log --pretty=format:%s -1
[2023-04-19T16:25:49.401Z] Failed fetching git branch from git directory: D:\Jenkins\workspace\ce05e7e74e92430\.git
[2023-04-19T16:25:50.777Z] To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.5.1/userguide/gradle_daemon.html#sec:disabling_the_daemon.
[2023-04-19T16:25:52.975Z] Daemon will be stopped at the end of the build
[2023-04-19T16:26:06.879Z] > Task :app:preBuild UP-TO-DATE
[2023-04-19T16:26:06.880Z] > Task :app:preDebugBuild UP-TO-DATE
[2023-04-19T16:26:06.975Z] > Task :app:compileDebugAidl NO-SOURCE
[2023-04-19T16:26:06.975Z] > Task :app:compileDebugRenderscript NO-SOURCE
[2023-04-19T16:26:08.275Z] > Task :app:dataBindingMergeDependencyArtifactsDebug UP-TO-DATE
[2023-04-19T16:26:08.275Z] > Task :app:generateDebugResValues UP-TO-DATE
[2023-04-19T16:26:08.275Z] > Task :app:generateDebugResources UP-TO-DATE
[2023-04-19T16:26:08.575Z] > Task :app:mergeDebugResources UP-TO-DATE
[2023-04-19T16:26:08.679Z] > Task :app:dataBindingGenBaseClassesDebug UP-TO-DATE
[2023-04-19T16:26:08.679Z] > Task :app:dataBindingTriggerDebug UP-TO-DATE
[2023-04-19T16:26:08.680Z] > Task :app:generateDebugBuildConfig UP-TO-DATE
[2023-04-19T16:26:08.680Z] > Task :app:generateSafeArgsDebug UP-TO-DATE
[2023-04-19T16:26:08.775Z] > Task :app:checkDebugAarMetadata UP-TO-DATE
[2023-04-19T16:26:08.775Z] > Task :app:mapDebugSourceSetPaths UP-TO-DATE
[2023-04-19T16:26:08.775Z] > Task :app:createDebugCompatibleScreenManifests UP-TO-DATE
[2023-04-19T16:26:08.775Z] > Task :app:extractDeepLinksDebug UP-TO-DATE
[2023-04-19T16:26:08.875Z] > Task :app:processDebugMainManifest UP-TO-DATE
[2023-04-19T16:26:08.975Z] > Task :app:processDebugManifest UP-TO-DATE
[2023-04-19T16:26:08.975Z] > Task :app:processDebugManifestForPackage UP-TO-DATE
[2023-04-19T16:26:09.275Z] > Task :app:processDebugResources UP-TO-DATE
[2023-04-19T16:26:10.375Z] > Task :app:kaptGenerateStubsDebugKotlin UP-TO-DATE
[2023-04-19T16:26:11.018Z] > Task :app:kaptDebugKotlin UP-TO-DATE
[2023-04-19T16:26:11.174Z] > Task :app:compileDebugKotlin UP-TO-DATE
[2023-04-19T16:26:11.175Z] > Task :app:javaPreCompileDebug UP-TO-DATE
[2023-04-19T16:26:11.175Z] > Task :app:compileDebugJavaWithJavac UP-TO-DATE
[2023-04-19T16:26:11.674Z] > Task :app:hiltAggregateDepsDebug UP-TO-DATE
[2023-04-19T16:26:11.674Z] > Task :app:hiltJavaCompileDebug UP-TO-DATE
[2023-04-19T16:26:11.775Z] > Task :app:transformDebugClassesWithAsm UP-TO-DATE
[2023-04-19T16:26:11.975Z] > Task :app:bundleDebugClassesToCompileJar UP-TO-DATE
[2023-04-19T16:26:12.174Z] > Task :app:kaptGenerateStubsDebugUnitTestKotlin UP-TO-DATE
[2023-04-19T16:26:12.274Z] > Task :app:kaptDebugUnitTestKotlin UP-TO-DATE
[2023-04-19T16:26:12.374Z] > Task :app:compileDebugUnitTestKotlin UP-TO-DATE
[2023-04-19T16:26:12.374Z] > Task :app:preDebugUnitTestBuild UP-TO-DATE
[2023-04-19T16:26:12.374Z] > Task :app:javaPreCompileDebugUnitTest UP-TO-DATE
[2023-04-19T16:26:12.375Z] > Task :app:compileDebugUnitTestJavaWithJavac NO-SOURCE
[2023-04-19T16:26:12.375Z] > Task :app:mergeDebugShaders UP-TO-DATE
[2023-04-19T16:26:12.375Z] > Task :app:compileDebugShaders NO-SOURCE
[2023-04-19T16:26:12.375Z] > Task :app:generateDebugAssets UP-TO-DATE
[2023-04-19T16:26:12.475Z] > Task :app:mergeDebugAssets UP-TO-DATE
[2023-04-19T16:26:12.574Z] > Task :app:bundleDebugClassesToRuntimeJar
[2023-04-19T16:26:12.675Z] > Task :app:packageDebugUnitTestForUnitTest
[2023-04-19T16:26:12.675Z] > Task :app:processDebugJavaRes NO-SOURCE
[2023-04-19T16:26:12.675Z] > Task :app:processDebugUnitTestJavaRes NO-SOURCE
[2023-04-19T16:26:12.675Z] > Task :app:generateDebugUnitTestConfig
[2023-04-19T16:26:12.675Z] > Task :app:artifactoryPublish
[2023-04-19T16:26:12.675Z] > Task :artifactoryPublish
[2023-04-19T16:26:12.974Z] > Task :extractModuleInfo
[2023-04-19T16:26:14.876Z] Error during extraction:
[2023-04-19T16:26:14.893Z] org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':app:debugUnitTestCompileClasspath'.
[2023-04-19T16:26:14.894Z] 	at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.wrapException(ErrorHandlingConfigurationResolver.java:107)
[2023-04-19T16:26:14.894Z] 	at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver$ErrorHandlingResolvedConfiguration.getResolvedArtifacts(ErrorHandlingConfigurationResolver.java:343)
[2023-04-19T16:26:14.894Z] 	at org.jfrog.gradle.plugin.artifactory.extractor.GradleModuleExtractor.calculateDependencies(GradleModuleExtractor.java:131)
[2023-04-19T16:26:14.894Z] 	at org.jfrog.gradle.plugin.artifactory.extractor.GradleModuleExtractor.extractModule(GradleModuleExtractor.java:95)
[2023-04-19T16:26:14.894Z] 	at org.jfrog.gradle.plugin.artifactory.task.ExtractModuleTask.extractModuleFile(ExtractModuleTask.java:31)
[2023-04-19T16:26:14.894Z] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2023-04-19T16:26:14.894Z] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[2023-04-19T16:26:14.894Z] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[2023-04-19T16:26:14.894Z] 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[2023-04-19T16:26:14.894Z] 	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
[2023-04-19T16:26:14.894Z] 	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
[2023-04-19T16:26:14.894Z] 	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
[2023-04-19T16:26:14.894Z] 	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
[2023-04-19T16:26:14.894Z] 	at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:236)
[2023-04-19T16:26:14.894Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
[2023-04-19T16:26:14.894Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
[2023-04-19T16:26:14.894Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[2023-04-19T16:26:14.894Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.894Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[2023-04-19T16:26:14.894Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.895Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
[2023-04-19T16:26:14.895Z] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
[2023-04-19T16:26:14.895Z] 	at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:221)
[2023-04-19T16:26:14.895Z] 	at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:204)
[2023-04-19T16:26:14.895Z] 	at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:187)
[2023-04-19T16:26:14.895Z] 	at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:165)
[2023-04-19T16:26:14.895Z] 	at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89)
[2023-04-19T16:26:14.895Z] 	at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40)
[2023-04-19T16:26:14.895Z] 	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53)
[2023-04-19T16:26:14.895Z] 	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)
[2023-04-19T16:26:14.895Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
[2023-04-19T16:26:14.895Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
[2023-04-19T16:26:14.895Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:50)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:40)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:124)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:80)
[2023-04-19T16:26:14.896Z] 	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:58)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:181)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:71)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.Either$Right.fold(Either.java:175)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:69)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:47)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:110)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:56)
[2023-04-19T16:26:14.897Z] 	at java.base/java.util.Optional.orElseGet(Optional.java:369)
[2023-04-19T16:26:14.897Z] 	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:56)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:73)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:89)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:50)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:114)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:57)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:76)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:50)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNoEmptySources(SkipEmptyWorkStep.java:254)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:91)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:56)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
[2023-04-19T16:26:14.898Z] 	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
[2023-04-19T16:26:14.899Z] 	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:43)
[2023-04-19T16:26:14.899Z] 	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:31)
[2023-04-19T16:26:14.899Z] 	at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
[2023-04-19T16:26:14.899Z] 	at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:281)
[2023-04-19T16:26:14.899Z] 	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
[2023-04-19T16:26:14.899Z] 	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
[2023-04-19T16:26:14.899Z] 	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
[2023-04-19T16:26:14.899Z] 	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
[2023-04-19T16:26:14.899Z] 	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)
[2023-04-19T16:26:14.899Z] 	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33)
[2023-04-19T16:26:14.899Z] 	at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
[2023-04-19T16:26:14.899Z] 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:139)
[2023-04-19T16:26:14.899Z] 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128)
[2023-04-19T16:26:14.899Z] 	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
[2023-04-19T16:26:14.899Z] 	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
[2023-04-19T16:26:14.899Z] 	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
[2023-04-19T16:26:14.899Z] 	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
[2023-04-19T16:26:14.900Z] 	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
[2023-04-19T16:26:14.900Z] 	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
[2023-04-19T16:26:14.900Z] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
[2023-04-19T16:26:14.900Z] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
[2023-04-19T16:26:14.900Z] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
[2023-04-19T16:26:14.900Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
[2023-04-19T16:26:14.900Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
[2023-04-19T16:26:14.900Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[2023-04-19T16:26:14.900Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.900Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[2023-04-19T16:26:14.900Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.900Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
[2023-04-19T16:26:14.900Z] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
[2023-04-19T16:26:14.900Z] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
[2023-04-19T16:26:14.900Z] 	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)
[2023-04-19T16:26:14.900Z] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:327)
[2023-04-19T16:26:14.900Z] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:314)
[2023-04-19T16:26:14.901Z] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:307)
[2023-04-19T16:26:14.901Z] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:293)
[2023-04-19T16:26:14.901Z] 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:420)
[2023-04-19T16:26:14.901Z] 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:342)
[2023-04-19T16:26:14.901Z] 	at org.gradle.execution.plan.DefaultPlanExecutor.process(DefaultPlanExecutor.java:96)
[2023-04-19T16:26:14.901Z] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.executeWithServices(DefaultTaskExecutionGraph.java:140)
[2023-04-19T16:26:14.901Z] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:125)
[2023-04-19T16:26:14.901Z] 	at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:39)
[2023-04-19T16:26:14.901Z] 	at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:51)
[2023-04-19T16:26:14.901Z] 	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:54)
[2023-04-19T16:26:14.901Z] 	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:43)
[2023-04-19T16:26:14.901Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
[2023-04-19T16:26:14.901Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
[2023-04-19T16:26:14.901Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[2023-04-19T16:26:14.901Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.901Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[2023-04-19T16:26:14.901Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.902Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
[2023-04-19T16:26:14.902Z] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
[2023-04-19T16:26:14.902Z] 	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor.execute(BuildOperationFiringBuildWorkerExecutor.java:40)
[2023-04-19T16:26:14.902Z] 	at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$executeTasks$7(DefaultBuildLifecycleController.java:161)
[2023-04-19T16:26:14.902Z] 	at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247)
[2023-04-19T16:26:14.902Z] 	at org.gradle.internal.model.StateTransitionController.lambda$tryTransition$7(StateTransitionController.java:174)
[2023-04-19T16:26:14.902Z] 	at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
[2023-04-19T16:26:14.903Z] 	at org.gradle.internal.model.StateTransitionController.tryTransition(StateTransitionController.java:174)
[2023-04-19T16:26:14.903Z] 	at org.gradle.internal.build.DefaultBuildLifecycleController.executeTasks(DefaultBuildLifecycleController.java:161)
[2023-04-19T16:26:14.903Z] 	at org.gradle.internal.build.DefaultBuildWorkGraphController$DefaultBuildWorkGraph.runWork(DefaultBuildWorkGraphController.java:156)
[2023-04-19T16:26:14.903Z] 	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)
[2023-04-19T16:26:14.903Z] 	at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)
[2023-04-19T16:26:14.904Z] 	at org.gradle.composite.internal.DefaultBuildController.doRun(DefaultBuildController.java:164)
[2023-04-19T16:26:14.904Z] 	at org.gradle.composite.internal.DefaultBuildController.access$000(DefaultBuildController.java:45)
[2023-04-19T16:26:14.905Z] 	at org.gradle.composite.internal.DefaultBuildController$BuildOpRunnable.run(DefaultBuildController.java:183)
[2023-04-19T16:26:14.905Z] 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[2023-04-19T16:26:14.905Z] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[2023-04-19T16:26:14.905Z] 	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
[2023-04-19T16:26:14.906Z] 	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
[2023-04-19T16:26:14.906Z] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[2023-04-19T16:26:14.907Z] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[2023-04-19T16:26:14.907Z] 	at java.base/java.lang.Thread.run(Thread.java:834)
[2023-04-19T16:26:14.907Z] Caused by: org.gradle.internal.component.AmbiguousVariantSelectionException: The consumer was configured to find an API of a component, preferably optimized for Android, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debug', attribute 'com.android.build.api.attributes.AgpVersionAttr' with value '7.4.2', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm'. However we cannot choose between the following variants of project :app:
[2023-04-19T16:26:14.907Z]   - Configuration ':app:debugApiElements' variant android-base-module-metadata declares an API of a component, preferably optimized for Android, as well as attribute 'com.android.build.api.attributes.AgpVersionAttr' with value '7.4.2', attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debug', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
[2023-04-19T16:26:14.907Z]       - Unmatched attributes:
[2023-04-19T16:26:14.908Z]           - Provides attribute 'artifactType' with value 'android-base-module-metadata' but the consumer didn't ask for it
[2023-04-19T16:26:14.908Z]           - Provides attribute 'com.android.build.gradle.internal.attributes.VariantAttr' with value 'debug' but the consumer didn't ask for it
[2023-04-19T16:26:14.908Z]           - Provides a library but the consumer didn't ask for it
[2023-04-19T16:26:14.909Z]   - Configuration ':app:debugApiElements' variant android-feature-all-metadata declares an API of a component, preferably optimized for Android, as well as attribute 'com.android.build.api.attributes.AgpVersionAttr' with value '7.4.2', attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debug', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
[2023-04-19T16:26:14.909Z]       - Unmatched attributes:
[2023-04-19T16:26:14.909Z]           - Provides attribute 'artifactType' with value 'android-feature-all-metadata' but the consumer didn't ask for it
[2023-04-19T16:26:14.909Z]           - Provides attribute 'com.android.build.gradle.internal.attributes.VariantAttr' with value 'debug' but the consumer didn't ask for it
[2023-04-19T16:26:14.909Z]           - Provides a library but the consumer didn't ask for it
[2023-04-19T16:26:14.910Z]   - Configuration ':app:debugApiElements' variant android-feature-res-ap_ declares an API of a component, preferably optimized for Android, as well as attribute 'com.android.build.api.attributes.AgpVersionAttr' with value '7.4.2', attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debug', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
[2023-04-19T16:26:14.910Z]       - Unmatched attributes:
[2023-04-19T16:26:14.910Z]           - Provides attribute 'artifactType' with value 'android-feature-res-ap_' but the consumer didn't ask for it
[2023-04-19T16:26:14.910Z]           - Provides attribute 'com.android.build.gradle.internal.attributes.VariantAttr' with value 'debug' but the consumer didn't ask for it
[2023-04-19T16:26:14.910Z]           - Provides a library but the consumer didn't ask for it
[2023-04-19T16:26:14.910Z]   - Configuration ':app:debugApiElements' variant android-feature-signing-config-data declares an API of a component, preferably optimized for Android, as well as attribute 'com.android.build.api.attributes.AgpVersionAttr' with value '7.4.2', attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debug', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
[2023-04-19T16:26:14.910Z]       - Unmatched attributes:
[2023-04-19T16:26:14.911Z]           - Provides attribute 'artifactType' with value 'android-feature-signing-config-data' but the consumer didn't ask for it
[2023-04-19T16:26:14.911Z]           - Provides attribute 'com.android.build.gradle.internal.attributes.VariantAttr' with value 'debug' but the consumer didn't ask for it
[2023-04-19T16:26:14.911Z]           - Provides a library but the consumer didn't ask for it
[2023-04-19T16:26:14.911Z]   - Configuration ':app:debugApiElements' variant android-feature-signing-config-versions declares an API of a component, preferably optimized for Android, as well as attribute 'com.android.build.api.attributes.AgpVersionAttr' with value '7.4.2', attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debug', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
[2023-04-19T16:26:14.912Z]       - Unmatched attributes:
[2023-04-19T16:26:14.912Z]           - Provides attribute 'artifactType' with value 'android-feature-signing-config-versions' but the consumer didn't ask for it
[2023-04-19T16:26:14.912Z]           - Provides attribute 'com.android.build.gradle.internal.attributes.VariantAttr' with value 'debug' but the consumer didn't ask for it
[2023-04-19T16:26:14.913Z]           - Provides a library but the consumer didn't ask for it
[2023-04-19T16:26:14.913Z]   - Configuration ':app:debugApiElements' variant android-java-res declares an API of a component, preferably optimized for Android, as well as attribute 'com.android.build.api.attributes.AgpVersionAttr' with value '7.4.2', attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debug', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
[2023-04-19T16:26:14.913Z]       - Unmatched attributes:
[2023-04-19T16:26:14.913Z]           - Provides attribute 'artifactType' with value 'android-java-res' but the consumer didn't ask for it
[2023-04-19T16:26:14.914Z]           - Provides attribute 'com.android.build.gradle.internal.attributes.VariantAttr' with value 'debug' but the consumer didn't ask for it
[2023-04-19T16:26:14.914Z]           - Provides a library but the consumer didn't ask for it
[2023-04-19T16:26:14.915Z]   - Configuration ':app:debugApiElements' variant android-manifest-metadata declares an API of a component, preferably optimized for Android, as well as attribute 'com.android.build.api.attributes.AgpVersionAttr' with value '7.4.2', attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debug', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
[2023-04-19T16:26:14.915Z]       - Unmatched attributes:
[2023-04-19T16:26:14.915Z]           - Provides attribute 'artifactType' with value 'android-manifest-metadata' but the consumer didn't ask for it
[2023-04-19T16:26:14.915Z]           - Provides attribute 'com.android.build.gradle.internal.attributes.VariantAttr' with value 'debug' but the consumer didn't ask for it
[2023-04-19T16:26:14.916Z]           - Provides a library but the consumer didn't ask for it
[2023-04-19T16:26:14.916Z] 	at org.gradle.api.internal.artifacts.transform.AttributeMatchingVariantSelector.doSelect(AttributeMatchingVariantSelector.java:109)
[2023-04-19T16:26:14.916Z] 	at org.gradle.api.internal.artifacts.transform.AttributeMatchingVariantSelector.doSelect(AttributeMatchingVariantSelector.java:112)
[2023-04-19T16:26:14.916Z] 	at org.gradle.api.internal.artifacts.transform.AttributeMatchingVariantSelector.select(AttributeMatchingVariantSelector.java:90)
[2023-04-19T16:26:14.916Z] 	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.DefaultArtifactSet.select(DefaultArtifactSet.java:204)
[2023-04-19T16:26:14.917Z] 	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.DefaultVisitedArtifactResults.select(DefaultVisitedArtifactResults.java:48)
[2023-04-19T16:26:14.917Z] 	at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.select(DefaultLenientConfiguration.java:126)
[2023-04-19T16:26:14.917Z] 	at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.select(DefaultLenientConfiguration.java:116)
[2023-04-19T16:26:14.917Z] 	at org.gradle.api.internal.artifacts.ivyservice.DefaultResolvedConfiguration.getResolvedArtifacts(DefaultResolvedConfiguration.java:85)
[2023-04-19T16:26:14.918Z] 	at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver$ErrorHandlingResolvedConfiguration.getResolvedArtifacts(ErrorHandlingConfigurationResolver.java:341)
[2023-04-19T16:26:14.918Z] 	at org.jfrog.gradle.plugin.artifactory.extractor.GradleModuleExtractor.calculateDependencies(GradleModuleExtractor.java:131)
[2023-04-19T16:26:14.918Z] 	at org.jfrog.gradle.plugin.artifactory.extractor.GradleModuleExtractor.extractModule(GradleModuleExtractor.java:95)
[2023-04-19T16:26:14.918Z] 	at org.jfrog.gradle.plugin.artifactory.task.ExtractModuleTask.extractModuleFile(ExtractModuleTask.java:31)
[2023-04-19T16:26:14.918Z] 	at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2023-04-19T16:26:14.918Z] 	at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[2023-04-19T16:26:14.918Z] 	at [email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[2023-04-19T16:26:14.918Z] 	at [email protected]/java.lang.reflect.Method.invoke(Method.java:566)
[2023-04-19T16:26:14.919Z] 	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
[2023-04-19T16:26:14.919Z] 	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
[2023-04-19T16:26:14.919Z] 	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
[2023-04-19T16:26:14.920Z] 	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
[2023-04-19T16:26:14.920Z] 	at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:236)
[2023-04-19T16:26:14.920Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
[2023-04-19T16:26:14.920Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
[2023-04-19T16:26:14.921Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[2023-04-19T16:26:14.921Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.921Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[2023-04-19T16:26:14.921Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.921Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
[2023-04-19T16:26:14.921Z] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
[2023-04-19T16:26:14.921Z] 	at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:221)
[2023-04-19T16:26:14.921Z] 	at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:204)
[2023-04-19T16:26:14.921Z] 	at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:187)
[2023-04-19T16:26:14.921Z] 	at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:165)
[2023-04-19T16:26:14.922Z] 	at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89)
[2023-04-19T16:26:14.922Z] 	at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40)
[2023-04-19T16:26:14.922Z] 	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53)
[2023-04-19T16:26:14.922Z] 	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)
[2023-04-19T16:26:14.922Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
[2023-04-19T16:26:14.922Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
[2023-04-19T16:26:14.922Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[2023-04-19T16:26:14.922Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.922Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[2023-04-19T16:26:14.922Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.922Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
[2023-04-19T16:26:14.923Z] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
[2023-04-19T16:26:14.923Z] 	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:50)
[2023-04-19T16:26:14.923Z] 	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:40)
[2023-04-19T16:26:14.923Z] 	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)
[2023-04-19T16:26:14.923Z] 	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)
[2023-04-19T16:26:14.923Z] 	at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
[2023-04-19T16:26:14.923Z] 	at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
[2023-04-19T16:26:14.923Z] 	at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
[2023-04-19T16:26:14.923Z] 	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
[2023-04-19T16:26:14.924Z] 	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)
[2023-04-19T16:26:14.924Z] 	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:124)
[2023-04-19T16:26:14.924Z] 	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:80)
[2023-04-19T16:26:14.924Z] 	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:58)
[2023-04-19T16:26:14.924Z] 	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
[2023-04-19T16:26:14.925Z] 	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)
[2023-04-19T16:26:14.925Z] 	at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:181)
[2023-04-19T16:26:14.925Z] 	at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:71)
[2023-04-19T16:26:14.925Z] 	at org.gradle.internal.Either$Right.fold(Either.java:175)
[2023-04-19T16:26:14.925Z] 	at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
[2023-04-19T16:26:14.925Z] 	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:69)
[2023-04-19T16:26:14.926Z] 	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:47)
[2023-04-19T16:26:14.926Z] 	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
[2023-04-19T16:26:14.926Z] 	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
[2023-04-19T16:26:14.927Z] 	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
[2023-04-19T16:26:14.927Z] 	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
[2023-04-19T16:26:14.927Z] 	at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:110)
[2023-04-19T16:26:14.927Z] 	at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:56)
[2023-04-19T16:26:14.927Z] 	at [email protected]/java.util.Optional.orElseGet(Optional.java:369)
[2023-04-19T16:26:14.927Z] 	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:56)
[2023-04-19T16:26:14.927Z] 	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
[2023-04-19T16:26:14.927Z] 	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:73)
[2023-04-19T16:26:14.927Z] 	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44)
[2023-04-19T16:26:14.927Z] 	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
[2023-04-19T16:26:14.928Z] 	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
[2023-04-19T16:26:14.928Z] 	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:89)
[2023-04-19T16:26:14.928Z] 	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:50)
[2023-04-19T16:26:14.928Z] 	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:114)
[2023-04-19T16:26:14.928Z] 	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:57)
[2023-04-19T16:26:14.928Z] 	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:76)
[2023-04-19T16:26:14.928Z] 	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:50)
[2023-04-19T16:26:14.928Z] 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNoEmptySources(SkipEmptyWorkStep.java:254)
[2023-04-19T16:26:14.928Z] 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:91)
[2023-04-19T16:26:14.928Z] 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:56)
[2023-04-19T16:26:14.928Z] 	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
[2023-04-19T16:26:14.929Z] 	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
[2023-04-19T16:26:14.929Z] 	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
[2023-04-19T16:26:14.929Z] 	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:43)
[2023-04-19T16:26:14.929Z] 	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:31)
[2023-04-19T16:26:14.929Z] 	at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
[2023-04-19T16:26:14.929Z] 	at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:281)
[2023-04-19T16:26:14.929Z] 	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
[2023-04-19T16:26:14.929Z] 	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
[2023-04-19T16:26:14.929Z] 	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
[2023-04-19T16:26:14.929Z] 	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
[2023-04-19T16:26:14.929Z] 	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)
[2023-04-19T16:26:14.930Z] 	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33)
[2023-04-19T16:26:14.930Z] 	at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
[2023-04-19T16:26:14.930Z] 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:139)
[2023-04-19T16:26:14.930Z] 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128)
[2023-04-19T16:26:14.930Z] 	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
[2023-04-19T16:26:14.930Z] 	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
[2023-04-19T16:26:14.931Z] 	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
[2023-04-19T16:26:14.931Z] 	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
[2023-04-19T16:26:14.931Z] 	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
[2023-04-19T16:26:14.932Z] 	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
[2023-04-19T16:26:14.932Z] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
[2023-04-19T16:26:14.932Z] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
[2023-04-19T16:26:14.932Z] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
[2023-04-19T16:26:14.933Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
[2023-04-19T16:26:14.933Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
[2023-04-19T16:26:14.933Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[2023-04-19T16:26:14.933Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.934Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[2023-04-19T16:26:14.934Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.934Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
[2023-04-19T16:26:14.935Z] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
[2023-04-19T16:26:14.935Z] 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
[2023-04-19T16:26:14.935Z] 	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)
[2023-04-19T16:26:14.936Z] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:327)
[2023-04-19T16:26:14.936Z] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:314)
[2023-04-19T16:26:14.936Z] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:307)
[2023-04-19T16:26:14.936Z] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:293)
[2023-04-19T16:26:14.937Z] 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:420)
[2023-04-19T16:26:14.937Z] 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:342)
[2023-04-19T16:26:14.937Z] 	at org.gradle.execution.plan.DefaultPlanExecutor.process(DefaultPlanExecutor.java:96)
[2023-04-19T16:26:14.937Z] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.executeWithServices(DefaultTaskExecutionGraph.java:140)
[2023-04-19T16:26:14.938Z] 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:125)
[2023-04-19T16:26:14.938Z] 	at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:39)
[2023-04-19T16:26:14.938Z] 	at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:51)
[2023-04-19T16:26:14.938Z] 	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:54)
[2023-04-19T16:26:14.938Z] 	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:43)
[2023-04-19T16:26:14.938Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
[2023-04-19T16:26:14.938Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
[2023-04-19T16:26:14.938Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[2023-04-19T16:26:14.939Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.939Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[2023-04-19T16:26:14.939Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[2023-04-19T16:26:14.940Z] 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
[2023-04-19T16:26:14.940Z] 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
[2023-04-19T16:26:14.940Z] 	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor.execute(BuildOperationFiringBuildWorkerExecutor.java:40)
[2023-04-19T16:26:14.940Z] 	at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$executeTasks$7(DefaultBuildLifecycleController.java:161)
[2023-04-19T16:26:14.941Z] 	at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247)
[2023-04-19T16:26:14.941Z] 	at org.gradle.internal.model.StateTransitionController.lambda$tryTransition$7(StateTransitionController.java:174)
[2023-04-19T16:26:14.941Z] 	at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
[2023-04-19T16:26:14.941Z] 	at org.gradle.internal.model.StateTransitionController.tryTransition(StateTransitionController.java:174)
[2023-04-19T16:26:14.941Z] 	at org.gradle.internal.build.DefaultBuildLifecycleController.executeTasks(DefaultBuildLifecycleController.java:161)
[2023-04-19T16:26:14.941Z] 	at org.gradle.internal.build.DefaultBuildWorkGraphController$DefaultBuildWorkGraph.runWork(DefaultBuildWorkGraphController.java:156)
[2023-04-19T16:26:14.942Z] 	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)
[2023-04-19T16:26:14.942Z] 	at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)
[2023-04-19T16:26:14.942Z] 	at org.gradle.composite.internal.DefaultBuildController.doRun(DefaultBuildController.java:164)
[2023-04-19T16:26:14.942Z] 	at org.gradle.composite.internal.DefaultBuildController.access$000(DefaultBuildController.java:45)
[2023-04-19T16:26:14.942Z] 	at org.gradle.composite.internal.DefaultBuildController$BuildOpRunnable.run(DefaultBuildController.java:183)
[2023-04-19T16:26:14.942Z] 	at [email protected]/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[2023-04-19T16:26:14.942Z] 	at [email protected]/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[2023-04-19T16:26:14.942Z] 	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
[2023-04-19T16:26:14.942Z] 	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
[2023-04-19T16:26:14.942Z] 	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[2023-04-19T16:26:14.942Z] 	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[2023-04-19T16:26:14.942Z] 	at [email protected]/java.lang.Thread.run(Thread.java:834)
[2023-04-19T16:26:13.274Z] > Task :app:hiltAggregateDepsDebugUnitTest
[2023-04-19T16:26:14.875Z]
[2023-04-19T16:26:14.875Z] > Task :app:extractModuleInfo
[2023-04-19T16:26:14.923Z]
[2023-04-19T16:26:14.924Z] > Task :app:hiltJavaCompileDebugUnitTest NO-SOURCE
[2023-04-19T16:26:15.274Z] > Task :artifactoryDeploy
[2023-04-19T16:26:15.575Z] > Task :app:transformDebugUnitTestClassesWithAsm
[2023-04-19T16:26:39.475Z]
[2023-04-19T16:26:39.475Z] > Task :app:testDebugUnitTest
[2023-04-19T16:26:39.475Z]
[2023-04-19T16:26:39.475Z] com.?????.utils.GenerateClickablePhoneNumberTest > testGenerateClickablePhoneNumberReturnsNonNull FAILED
[2023-04-19T16:26:39.475Z]     java.lang.AssertionError at MavenArtifactFetcher.java:115
[2023-04-19T16:26:39.475Z]         Caused by: java.util.concurrent.ExecutionException at AbstractFuture.java:588
[2023-04-19T16:26:39.475Z]             Caused by: java.net.ConnectException at PlainSocketImpl.java:-2
[2023-04-19T16:27:21.376Z]
[2023-04-19T16:27:21.376Z] com.?????.utils.GenerateClickablePhoneNumberTest > testGenerateClickablePhoneNumberReturnsClickableSpan FAILED
[2023-04-19T16:27:21.376Z]     java.lang.AssertionError at MavenArtifactFetcher.java:115
[2023-04-19T16:27:21.376Z]         Caused by: java.util.concurrent.ExecutionException at AbstractFuture.java:588
[2023-04-19T16:27:21.376Z]             Caused by: java.net.ConnectException at PlainSocketImpl.java:-2
[2023-04-19T16:28:03.377Z]
[2023-04-19T16:28:03.378Z] com.?????.utils.GenerateClickablePhoneNumberTest > testGenerateClickablePhoneNumberReturnsSpannableString FAILED
[2023-04-19T16:28:03.378Z]     java.lang.AssertionError at MavenArtifactFetcher.java:115
[2023-04-19T16:28:03.378Z]         Caused by: java.util.concurrent.ExecutionException at AbstractFuture.java:588
[2023-04-19T16:28:03.378Z]             Caused by: java.net.ConnectException at PlainSocketImpl.java:-2
[2023-04-19T16:28:46.278Z]
[2023-04-19T16:28:46.279Z] 67 tests completed, 4 failed, 4 skipped
[2023-04-19T16:28:45.478Z]
[2023-04-19T16:28:45.478Z] com.?????.utils.GenerateClickablePhoneNumberTest > testGenerateClickablePhoneNumberClickableSpanUpdateDrawState FAILED
[2023-04-19T16:28:45.478Z]     java.lang.AssertionError at MavenArtifactFetcher.java:115
[2023-04-19T16:28:45.478Z]         Caused by: java.util.concurrent.ExecutionException at AbstractFuture.java:588
[2023-04-19T16:28:45.479Z]             Caused by: java.net.ConnectException at PlainSocketImpl.java:-2
[2023-04-19T16:28:46.379Z]
[2023-04-19T16:28:46.379Z] > Task :app:testDebugUnitTest FAILED
[2023-04-19T16:28:46.479Z]
[2023-04-19T16:28:46.479Z] FAILURE: Build failed with an exception.
[2023-04-19T16:28:46.479Z]
[2023-04-19T16:28:46.479Z] * What went wrong:
[2023-04-19T16:28:46.479Z] Execution failed for task ':app:testDebugUnitTest'.
[2023-04-19T16:28:46.479Z] > There were failing tests. See the report at: file:///D:/Jenkins/workspace/ce05e7e74e92430/app/build/reports/tests/testDebugUnitTest/index.html
[2023-04-19T16:28:46.479Z]
[2023-04-19T16:28:46.479Z] * Try:
[2023-04-19T16:28:46.479Z] > Run with --stacktrace option to get the stack trace.
[2023-04-19T16:28:46.479Z] > Run with --info or --debug option to get more log output.
[2023-04-19T16:28:46.479Z] > Run with --scan to get full insights.
[2023-04-19T16:28:46.479Z]
[2023-04-19T16:28:46.479Z] * Get more help at https://help.gradle.org
[2023-04-19T16:28:46.479Z]
[2023-04-19T16:28:46.480Z] BUILD FAILED in 2m 56s
[2023-04-19T16:28:46.478Z]
[2023-04-19T16:28:46.478Z] Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
[2023-04-19T16:28:46.478Z]
[2023-04-19T16:28:46.479Z] You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
[2023-04-19T16:28:46.479Z]
[2023-04-19T16:28:46.479Z] See https://docs.gradle.org/7.5.1/userguide/command_line_interface.html#sec:command_line_warnings
[2023-04-19T16:28:46.479Z] 41 actionable tasks: 11 executed, 30 up-to-date
Gradle build failed
          

@bizzguy it looks like the connection to artifactory failed from the CI machine.

Do you have the ability to ssh to this CI machine and tinker around?

The logic to connect to the maven server is fairly trivial, it's just an HTTPUrlConnection:
https://github.com/robolectric/robolectric/blob/master/plugins/maven-dependency-resolver/src/main/java/org/robolectric/internal/dependency/MavenArtifactFetcher.java#L204

Are you able to ssh to this machine and create a simple Java program that tries to connect to this artifactory server?

There is also the command ./gradlew prefetchInstrumentedSdks that you could try running on the CI machine. This prefetches the instrumented Android framework jars that are used by Robolectric. Not sure how this would work with your artifactory server though.

Without robolectric, the build on the server works fine. So Gradle itself is talking to Artifactory ok. It is just the robolectric stuff that fails. Unfortunately, I have limited access to the machine (for ssh). I will try the "prefetch" and see what happens.

It feels like I'm just not configuring the Robolectric properties correctly. Is there another way to set "robolectric.dependency.repo.url" and the other two (username, password)? Maybe in code?

@utzcoz. I tried to follow the configuration instructions. I'm using the following in the android section of my app build file:

testOptions {
  animationsDisabled = true
  unitTests {
    isIncludeAndroidResources = true
    // Robolectric repo config for artifactory: https://robolectric.org/configuring/
    systemProperty("robolectric.dependency.repo.url", "\${artifactory_contextUrl}")
    systemProperty("robolectric.dependency.repo.username", "\${artifactory_user}")
    systemProperty("robolectric.dependency.repo.password", "\${artifactory_password}")

My suspicion is that the system properties are not being set correctly (although I use a similar technique in the root "settings.gradle").

Is there a way for me to log the values of the properties so I could confirm they are being set correctly?

i am also having the same problem with :

java.lang.AssertionError at MavenArtifactFetcher.java:129
        Caused by: java.util.concurrent.ExecutionException at AbstractFuture.java:588
            Caused by: java.net.SocketException at SSLSocketFactory.java:263
                Caused by: java.security.NoSuchAlgorithmException at Provider.java:1901
                    Caused by: java.lang.NullPointerException at PKCS12KeyStoreSpi.java:781

i have no idea what to do, as this only occurs in the CI job..... urgent help needed.

I am seeing the same issue, after troubleshooting looks like it started happening after we upgraded from Roboelectric 4.6 to Robolectric 4.10.3. So I believe there is a regression somewhere in between (or maybe we have cached the old dependencies?) . I downgraded the Roboelectric version to 4.6 and its passing in our internal CI now.

(or maybe we have cached the old dependencies?

It is done by Gradle and Maven. But a new Robolectric version might introduce new dependencies like new android-jar for new Android SDK, or new version of all instrumentated jars. These depend on Robolectric's changes.

So I believe there is a regression somewhere in between

It's very strange. Robolectric download these dependencies many times on GitHub CI although we have used cache for them, and we didn't face maven issues to download dependencies.

You could also use -Djavax.net.debug=ssl, or at least -Djavax.net.debug=ssl,keymanager, to get more debugging information, if the information in the stack trace isn't sufficient.

@souhailmarghabi From your stack, it looks like the Robolectric maven resolver can't find proper algorithm in your CI machine's environment for SSL. You can follow https://stackoverflow.com/questions/6365209/java-and-ssl-java-security-nosuchalgorithmexception to add debug flags to get more stack information and attach here. And another question for you, what's the JDK version that your CI machine uses? JRE or JDK? Java 8 or Java 11 or Java 14 or Java 16/17?

i am also having the same problem with :

java.lang.AssertionError at MavenArtifactFetcher.java:129
        Caused by: java.util.concurrent.ExecutionException at AbstractFuture.java:588
            Caused by: java.net.SocketException at SSLSocketFactory.java:263
                Caused by: java.security.NoSuchAlgorithmException at Provider.java:1901
                    Caused by: java.lang.NullPointerException at PKCS12KeyStoreSpi.java:781

i have no idea what to do, as this only occurs in the CI job..... urgent help needed.

We have also observed the same issue on our CI. We are using Robolectric version 4.10.3.

@hellosagar @carlonzo @antonicg which error message are you seeing? Is it java.net.ConnectException at PlainSocketImpl.java:-2 (#8158 (comment)) or java.lang.NullPointerException at PKCS12KeyStoreSpi.java(#8158 (comment))?

If it is the ConnectException, it is a issue with the network connection in your CI, and the solution is outside of the scope of Robolectric. The solution would be to cache the framework jars that you need.

honestly my issue is slightly different (Caused by: java.net.SocketException: Connection reset by peer). I'll bring it up with Bitrise. is just weird it happens only with the Robolectric dependencies. we are on 4.10.3

here is my stack fyi:

java.lang.AssertionError: Failed to fetch maven artifact org.robolectric:android-all-instrumented:4.1.2_r1-robolectric-r1-i4
java.lang.AssertionError: Failed to fetch maven artifact org.robolectric:android-all-instrumented:4.1.2_r1-robolectric-r1-i4
	at org.robolectric.internal.dependency.MavenArtifactFetcher.fetchArtifact(MavenArtifactFetcher.java:129)
	at org.robolectric.internal.dependency.MavenDependencyResolver.lambda$getLocalArtifactUrls$0(MavenDependencyResolver.java:93)
	at org.robolectric.internal.dependency.MavenDependencyResolver.whileLocked(MavenDependencyResolver.java:113)
	at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrls(MavenDependencyResolver.java:88)
	at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrls(MavenDependencyResolver.java:78)
	at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrl(MavenDependencyResolver.java:129)
	at org.robolectric.plugins.LegacyDependencyResolver.getLocalArtifactUrl(LegacyDependencyResolver.java:89)
	at org.robolectric.plugins.DefaultSdkProvider$DefaultSdk.getJarPath(DefaultSdkProvider.java:148)
	at org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader.<init>(AndroidSandbox.java:128)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at org.robolectric.util.inject.Injector.inject(Injector.java:250)
	at org.robolectric.util.inject.Injector.lambda$memoized$1(Injector.java:232)
	at org.robolectric.util.inject.Injector$MemoizingProvider.get(Injector.java:498)
	at org.robolectric.util.inject.Injector.getInstanceInternal(Injector.java:224)
	at org.robolectric.util.inject.Injector.resolveDependencies(Injector.java:296)
	at org.robolectric.util.inject.Injector.inject(Injector.java:248)
	at org.robolectric.util.inject.Injector.lambda$memoized$1(Injector.java:232)
	at org.robolectric.util.inject.Injector$MemoizingProvider.get(Injector.java:498)
	at org.robolectric.util.inject.Injector.getInstanceInternal(Injector.java:224)
	at org.robolectric.util.inject.Injector.getInstance(Injector.java:208)
	at org.robolectric.util.inject.Injector.access$700(Injector.java:96)
	at org.robolectric.util.inject.Injector$ScopeBuilderProvider.create(Injector.java:564)
	at org.robolectric.util.inject.Injector$ScopeBuilderProvider.lambda$get$0(Injector.java:547)
	at jdk.proxy3/jdk.proxy3.$Proxy20.build(Unknown Source)
	at org.robolectric.internal.SandboxManager.getAndroidSandbox(SandboxManager.java:62)
	at org.robolectric.RobolectricTestRunner.getSandbox(RobolectricTestRunner.java:299)
	at org.robolectric.RobolectricTestRunner.getSandbox(RobolectricTestRunner.java:66)
	at org.robolectric.internal.SandboxTestRunner$2.evaluate(SandboxTestRunner.java:244)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.robolectric.internal.SandboxTestRunner$1.evaluate(SandboxTestRunner.java:101)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:108)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:40)
	at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:60)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:52)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.processTestClass(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: java.util.concurrent.ExecutionException: java.net.SocketException: Connection reset by peer
	at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:592)
	at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:571)
	at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:111)
	at org.robolectric.internal.dependency.MavenArtifactFetcher.fetchArtifact(MavenArtifactFetcher.java:121)
	... 65 more
Caused by: java.net.SocketException: Connection reset by peer
	at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:420)
	at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440)
	at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:826)
	at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1035)
	at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271)
	at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89)
	at java.base/sun.security.ssl.ClientHello$ClientHelloKickstartProducer.produce(ClientHello.java:646)
	at java.base/sun.security.ssl.SSLHandshake.kickstart(SSLHandshake.java:529)
	at java.base/sun.security.ssl.ClientHandshakeContext.kickstart(ClientHandshakeContext.java:112)
	at java.base/sun.security.ssl.TransportContext.kickstart(TransportContext.java:258)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:448)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)
	at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:589)
	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:187)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
	at org.robolectric.internal.dependency.MavenArtifactFetcher$FetchToFileTask.call(MavenArtifactFetcher.java:250)
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleAsyncTask.runInterruptibly(TrustedListenableFutureTask.java:167)
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleAsyncTask.runInterruptibly(TrustedListenableFutureTask.java:150)
	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:75)
	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
          

@hoisie Our error is not one of those two. This is the full stacktrace:

java.lang.AssertionError: Failed to fetch maven artifact org.robolectric:android-all-instrumented:7.0.0_r1-robolectric-r1-i4
java.lang.AssertionError: Failed to fetch maven artifact org.robolectric:android-all-instrumented:7.0.0_r1-robolectric-r1-i4
	at org.robolectric.internal.dependency.MavenArtifactFetcher.fetchArtifact(MavenArtifactFetcher.java:129)
	at org.robolectric.internal.dependency.MavenDependencyResolver.lambda$getLocalArtifactUrls$0(MavenDependencyResolver.java:93)
	at org.robolectric.internal.dependency.MavenDependencyResolver.whileLocked(MavenDependencyResolver.java:113)
	at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrls(MavenDependencyResolver.java:88)
	at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrls(MavenDependencyResolver.java:78)
	at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrl(MavenDependencyResolver.java:129)
	at org.robolectric.plugins.LegacyDependencyResolver.getLocalArtifactUrl(LegacyDependencyResolver.java:89)
	at org.robolectric.plugins.DefaultSdkProvider$DefaultSdk.getJarPath(DefaultSdkProvider.java:148)
	at org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader.<init>(AndroidSandbox.java:128)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.robolectric.util.inject.Injector.inject(Injector.java:250)
	at org.robolectric.util.inject.Injector.lambda$memoized$1(Injector.java:232)
	at org.robolectric.util.inject.Injector$MemoizingProvider.get(Injector.java:498)
	at org.robolectric.util.inject.Injector.getInstanceInternal(Injector.java:224)
	at org.robolectric.util.inject.Injector.resolveDependencies(Injector.java:296)
	at org.robolectric.util.inject.Injector.inject(Injector.java:248)
	at org.robolectric.util.inject.Injector.lambda$memoized$1(Injector.java:232)
	at org.robolectric.util.inject.Injector$MemoizingProvider.get(Injector.java:498)
	at org.robolectric.util.inject.Injector.getInstanceInternal(Injector.java:224)
	at org.robolectric.util.inject.Injector.getInstance(Injector.java:208)
	at org.robolectric.util.inject.Injector.access$700(Injector.java:96)
	at org.robolectric.util.inject.Injector$ScopeBuilderProvider.create(Injector.java:564)
	at org.robolectric.util.inject.Injector$ScopeBuilderProvider.lambda$get$0(Injector.java:547)
	at com.sun.proxy.$Proxy20.build(Unknown Source)
	at org.robolectric.internal.SandboxManager.getAndroidSandbox(SandboxManager.java:62)
	at org.robolectric.RobolectricTestRunner.getSandbox(RobolectricTestRunner.java:299)
	at org.robolectric.RobolectricTestRunner.getSandbox(RobolectricTestRunner.java:66)
	at org.robolectric.internal.SandboxTestRunner$2.evaluate(SandboxTestRunner.java:244)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.robolectric.internal.SandboxTestRunner$1.evaluate(SandboxTestRunner.java:101)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at androidx.test.ext.junit.runners.AndroidJUnit4.run(AndroidJUnit4.java:162)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42)
	at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)
	at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at com.sun.proxy.$Proxy5.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: java.util.concurrent.ExecutionException: java.net.SocketException: Connection reset
	at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:588)
	at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:567)
	at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:113)
	at org.robolectric.internal.dependency.MavenArtifactFetcher.fetchArtifact(MavenArtifactFetcher.java:121)
	... 78 more
Caused by: java.net.SocketException: Connection reset
	at java.base/java.net.SocketInputStream.read(SocketInputStream.java:186)
	at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)
	at org.conscrypt.ConscryptEngineSocket$SSLInputStream.readFromSocket(ConscryptEngineSocket.java:920)
	at org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:884)
	at org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:706)
	at org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:230)
	at org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:209)
	at org.conscrypt.ConscryptEngineSocket.waitForHandshake(ConscryptEngineSocket.java:547)
	at org.conscrypt.ConscryptEngineSocket.getOutputStream(ConscryptEngineSocket.java:290)
	at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:509)
	at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:602)
	at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266)
	at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:373)
	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:207)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081)
	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:193)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1592)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)
	at org.robolectric.internal.dependency.MavenArtifactFetcher$FetchToFileTask.call(MavenArtifactFetcher.java:250)
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleAsyncTask.runInterruptibly(TrustedListenableFutureTask.java:167)
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleAsyncTask.runInterruptibly(TrustedListenableFutureTask.java:150)
	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

We applied a temporary workaround downloading the necessary dependencies for robolectric a Bitrise step before the tests are run with the following command:

mvn dependency:get -Dartifact=org.robolectric:android-all-instrumented:6.0.1_r3-robolectric-r1-i4

I'm seeing the same problem ("java.lang.AssertionError: Failed to fetch maven artifact org.robolectric:android-all-instrumented:9-robolectric-4913185-2-i4 [...] Caused by: java.net.SocketException: Connection reset by peer") in Bitrise CI, but not when the equivalent steps are run using GitHub actions (with robolectric 4.10.3).

@barry-irvine @antonicg @hellosagar @carlonzo -- have you escalated this with Bitrise support? Is there an existing ticket with them that I can join?

Edit to note: This is intermittent for us (Tusky) as well. Sometimes a PR will go through, sometimes the same PR will fail on this step.

Hi @nikclayton yeah we internally escalated this with Bitrise and they said they received multiple reports already. Weirdly they are throwing "connection reset" errors with other requests as well.

The robolectric issue we worked around using the suggestion above (fyi if you use a Linux stack you need to manually download the maven binary by yourself because the one downloaded by apt is old and not compatible with jdk17)

Hi, on my last interaction with Bitrise support they stated that: "It does not appear to be due to a change we made"
So they might not actually fix this issue themselves, is there any solution being worked on beside the workaround stated above?
Thanks

adding the following line in build.gradle file works for me

android { testOptions { unitTests.all { systemProperty 'robolectric.dependency.repo.url', 'https://repo1.maven.org/maven2' jacoco { includeNoLocationClasses = true excludes = ['jdk.internal.*'] } } } }

I just got the same error as before for a different binary. (Intermittently. Sometimes it succeeds.)

I'm also having the same problem with :

java.lang.AssertionError at MavenArtifactFetcher.java:105
    Caused by: java.util.concurrent.ExecutionException at AbstractFuture.java:566
        Caused by: java.net.SocketException at NioSocketImpl.java:425

Maybe the solution here is to have retry logic when downloading android-all artifacts.

I think this is the best fix. I tried setting the system property robolectric.dependency.dir to a directory containing the android-all-instrumented .jar files which I download at the beginning of the CI stage but it only shifted failure to the beginning of the process since the downloads from repo1.maven.org would often fail immediately. We could host those files somewhere more reliable but this all ends up being a lot of effort for something that could be solved transparently in Robolectric. I'd also be concerned about having to periodically update which files we download for this, communicating this well in documentation, etc.

(For what it's worth, my CI host is Bitrise but I tried downloading the files repeatedly on my workstation outside of Bitrise and still got a 1% failure rate)

I'm also facing this issue on Bitrise, using version 4.10.3, and it's intermittent. It works fine on Android Studio.

java.lang.AssertionError at MavenArtifactFetcher.java:129 Caused by: java.util.concurrent.ExecutionException at AbstractFuture.java:588 Caused by: java.net.SocketException at SocketOutputStream.java:-2

I found another workaround for this which seems to fix the issue, though I would suggest this only as a last resort. Robolectric allows an offline mode, here's what I did.

1 - Update build.gradle with the following

afterEvaluate {
    project.tasks.withType(Test) {
        systemProperties.put('robolectric.offline', 'true')
        systemProperties.put('robolectric.dependency.dir',
                project.rootDir.path + '/robolectric-deps/')

2 - Download the android-all jar from maven and put it inside robolectric-deps directory in the root of the project. Make sure you download the right api level jar, according to your sdk value in robolectric.properties

This seems to skip downloading stuff altogether, the downside is that now you have a 150+ MB jar in your project.

Same issue for us as well. The tests run locally but fail on Bitrise with the following exception:

java.lang.AssertionError at MavenArtifactFetcher.java:115
        Caused by: java.util.concurrent.ExecutionException at AbstractFuture.java:588
            Caused by: java.net.SocketException at NioSocketImpl.java:425

Tried with version 4.10.3 and 4.9.2, same issue.

Has anyone figured out a workaround? I wonder if it's related to the tests running in parallel.

I'm doing the following steps

  • zip robolectric directory from ~/.m2/repository/org/ (my local machine)
  • Upload it to my server
  • In Bitrise, add a step before the unit test step to download the zip file from my server
  • Extract it to ~/.m2/repository/org/ (Bitrise machine)
  • Delete the zip file
  •