Triple-T / gradle-play-publisher

GPP is Android's unofficial release automation Gradle Plugin. It can do anything from building, uploading, and then promoting your App Bundle or APK to publishing app listings and other metadata.
MIT License
4.1k stars 340 forks source link

IllegalArgumentException [GPP 3.6.0, gradle 7.0.2] #1014

Closed Catfriend1 closed 2 years ago

Catfriend1 commented 2 years ago

How To Reproduce

gradlew PublishReleaseListing

Describe the bug

I repeatedly get the same non meaningful error message.

:app:publishReleaseListing (Thread[Execution worker for ':',5,main]) started.

> Task :app:publishReleaseListing FAILED
Caching disabled for task ':app:publishReleaseListing' because:
  Build cache is disabled
Task ':app:publishReleaseListing' is not up-to-date because:
  Task has failed previously.
The input changes require a full rebuild for incremental task ':app:publishReleaseListing'.
Uploading app details
Uploading de-DE listing
Uploading ca listing
Uploading ar listing
Uploading bg listing
Uploading da-DK listing
Uploading cs-CZ listing
Uploading el-GR listing
Uploading en-AU listing
Uploading en-GB listing
Uploading es-419 listing
Uploading es-ES listing
Uploading es-US listing
Uploading et listing
Uploading eu-ES listing
Uploading fi-FI listing
Uploading fr-FR listing
Uploading hu-HU listing
Uploading id listing
Uploading it-IT listing
Uploading ja-JP listing
Uploading ko-KR listing
Uploading lt listing
Uploading nl-NL listing
Uploading no-NO listing
Uploading pl-PL listing
Uploading pt-BR listing
Uploading pt-PT listing
Uploading ro listing
Uploading ru-RU listing
Uploading sk listing
Uploading sl listing
Uploading sr listing
Uploading sv-SE listing
Uploading ta-IN listing
Uploading tr-TR listing
Uploading uk listing
Uploading vi listing
Uploading zh-CN listing
Uploading zh-TW listing
:app:publishReleaseListing (Thread[Execution worker for ':',5,main]) completed. Took 0.135 secs.
:commitEditForComDotGithubDotCatfriend1DotSyncthingandroid (Thread[Execution worker for ':',5,main]) started.

> Task :commitEditForComDotGithubDotCatfriend1DotSyncthingandroid
Caching disabled for task ':commitEditForComDotGithubDotCatfriend1DotSyncthingandroid' because:
  Build cache is disabled
Task ':commitEditForComDotGithubDotCatfriend1DotSyncthingandroid' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
Build failed, skipping
:commitEditForComDotGithubDotCatfriend1DotSyncthingandroid (Thread[Execution worker for ':',5,main]) completed. Took 0.002 secs.
BUILD FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:publishReleaseListing'.
> A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$Publisher
   > There were multiple failures while executing work items
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$DetailsUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$ListingUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$MediaUploader
         > java.lang.IllegalArgumentException (no error message)

Versions

For Windows users the equivalent command is:

\--- com.github.triplet.play:com.github.triplet.play.gradle.plugin:3.6.0
     \--- com.github.triplet.gradle:play-publisher:3.6.0
          +--- com.github.triplet.gradle:android-publisher:3.6.0
          |    +--- com.github.triplet.gradle:common-utils:3.6.0
          +--- com.github.triplet.gradle:common-utils:3.6.0
          +--- com.github.triplet.gradle:common-validation:3.6.0
Gradle 7.0.2
+--- com.android.tools.build:gradle:7.0.2

Tasks executed

What tasks did you run?

Expected behavior

It should have outputted the locales and uploaded them to gplay console successfully.

Additional context (if a crash, provide stack trace)

 org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:publishReleaseListing'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:187)
        at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:268)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:185)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:173)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        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:200)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:408)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:395)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:388)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:374)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$Publisher
        at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:342)
        at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:142)
        at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:94)
        at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForAll(DefaultAsyncWorkTracker.java:80)
        at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:68)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:506)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:483)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:466)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:105)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:270)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:248)
        at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:83)
        at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:37)
        at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)
        at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:47)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:47)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:37)
        at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)
        at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:50)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)
        at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
        at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
        at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
        at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
        at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)
        at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:54)
        at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:35)
        at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60)
        at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:27)
        at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:174)
        at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:74)
        at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:45)
        at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:40)
        at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:29)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:99)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:92)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:84)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:41)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:91)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
        at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:78)
        at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:49)
        at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:105)
        at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:50)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:86)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:32)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:43)
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:31)
        at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$2.withWorkspace(ExecuteActionsTaskExecuter.java:283)
        at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
        at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
        at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
        at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
        at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:49)
        at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:35)
        at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:184)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:173)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        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:200)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:408)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:395)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:388)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:374)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: org.gradle.workers.WorkerExecutionException: There were multiple failures while executing work items
        at org.gradle.workers.internal.DefaultWorkerExecutor.workerExecutionException(DefaultWorkerExecutor.java:272)
        at org.gradle.workers.internal.DefaultWorkerExecutor.await(DefaultWorkerExecutor.java:252)
        at com.github.triplet.gradle.play.tasks.PublishListings$Publisher.execute(PublishListings.kt:169)
        at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
        at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:97)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)
        at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
        at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
        at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
        at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)
        at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$2(DefaultWorkerExecutor.java:206)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:214)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
        at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
        ... 3 more
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishListings$DetailsUploader
        at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:342)
        at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:142)
        at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:90)
        at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForAll(DefaultAsyncWorkTracker.java:80)
        at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:68)
        at org.gradle.workers.internal.DefaultWorkerExecutor.await(DefaultWorkerExecutor.java:250)
        ... 27 more
Caused by: java.lang.IllegalArgumentException:
        at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:900)
        at com.google.api.client.json.JsonParser.parse(JsonParser.java:360)
        at com.google.api.client.json.JsonParser.parse(JsonParser.java:335)
        at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:79)
        at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:73)
        at com.google.auth.oauth2.GoogleCredentials.fromStream(GoogleCredentials.java:157)
        at com.github.triplet.gradle.androidpublisher.internal.AndroidPublisherKt.createPublisher(AndroidPublisher.kt:25)
        at com.github.triplet.gradle.androidpublisher.internal.DefaultPlayPublisher$Factory.create(DefaultPlayPublisher.kt:244)
        at com.github.triplet.gradle.androidpublisher.PlayPublisher$Companion.invoke(PlayPublisher.kt:109)
        at com.github.triplet.gradle.play.tasks.internal.PlayApiService$publisher$2.invoke(PlayApiService.kt:26)
        at com.github.triplet.gradle.play.tasks.internal.PlayApiService$publisher$2.invoke(PlayApiService.kt:21)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at com.github.triplet.gradle.play.tasks.internal.PlayApiService.getPublisher(PlayApiService.kt)
        at com.github.triplet.gradle.play.tasks.internal.PlayApiService.getOrCreateEditId(PlayApiService.kt:79)
        at com.github.triplet.gradle.play.tasks.internal.PlayApiService.access$getOrCreateEditId(PlayApiService.kt:21)
        at com.github.triplet.gradle.play.tasks.internal.PlayApiService$edits$2.invoke(PlayApiService.kt:30)
        at com.github.triplet.gradle.play.tasks.internal.PlayApiService$edits$2.invoke(PlayApiService.kt:21)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at com.github.triplet.gradle.play.tasks.internal.PlayApiService.getEdits(PlayApiService.kt)
        at com.github.triplet.gradle.play.tasks.PublishListings$DetailsUploader.execute(PublishListings.kt:190)
        ... 26 more
Caused by: java.lang.IllegalArgumentException: expected primitive class, but got: class com.google.api.client.json.GenericJson
        at com.google.api.client.util.Data.parsePrimitiveValue(Data.java:478)
        at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:869)
        ... 45 more
Catfriend1 commented 2 years ago

Ok, I've set ANDROID_PUBLISHER_CREDENTIALS to a full path and filename, e. g. C:\keys\mykey.json .

It's hard under Windows to use the control panel for env vars and set the whole long JSON file content (including line breaks). So I modified my build script as follows to read the file to the env var if the env var is set to a filename. ( see https://github.com/Catfriend1/syncthing-android-fdroid/commit/c8033127ffa03931559041ca2b9bf479b57271cb )

I'd suggest you...

a) throw a meaningful error message like "Sorry, you didn't specify JSON content within the ANDROID_PUBLISHER_CREDENTIALS env var. Please do so."

b) Be lenient and auto-detect if the non-JSON content correspons to an existing file on disk. If so, read the file.

Thank you.

SUPERCILEX commented 2 years ago

a) sounds reasonable since I've had several people run into this issue.

b) is a no-go because you can define your own envvar and pass it into the play config file path.

Catfriend1 commented 2 years ago

@SUPERCILEX Thank you, good job! :-)