Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

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

Fix #5535: Upgrade builds to target SDK 34 #5604

Merged
merged 10 commits into from
Dec 29, 2024
Merged

Conversation

theMr17
Copy link
Collaborator

@theMr17 theMr17 commented Dec 18, 2024

Explanation

Fixes #5535

This PR updates all build and target SDKs for both Gradle and Bazel builds to SDK 34 to comply with the latest Play Store requirements. The key considerations for this upgrade include:

Details about SDK 34 changes, potential issues, and mitigations can be found in the #5535 issue thread.

Essential Checklist

  • The PR title and explanation each start with "Fix #bugnum: " (If this PR fixes part of an issue, prefix the title with "Fix part of #bugnum: ...".)
  • Any changes to scripts/assets files have their rationale included in the PR explanation.
  • The PR follows the style guide.
  • The PR does not contain any unnecessary code changes from Android Studio (reference).
  • The PR is made from a branch that's not called "develop" and is up-to-date with "develop".
  • The PR is assigned to the appropriate reviewers (reference).

For UI-specific PRs only

If your PR includes UI-related changes, then:

  • Add screenshots for portrait/landscape for both a tablet & phone of the before & after UI changes
  • For the screenshots above, include both English and pseudo-localized (RTL) screenshots (see RTL guide)
  • Add a video showing the full UX flow with a screen reader enabled (see accessibility guide)
  • For PRs introducing new UI elements or color changes, both light and dark mode screenshots must be included
  • Add a screenshot demonstrating that you ran affected Espresso tests locally & that they're passing

Copy link

oppiabot bot commented Dec 25, 2024

Hi @theMr17, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue.
If you are still working on this PR, please make a follow-up commit within 3 days (and submit it for review, if applicable). Please also let us know if you are stuck so we can help you!

@oppiabot oppiabot bot added the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Dec 25, 2024
Copy link
Member

@BenHenning BenHenning left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @theMr17! Just one comment--I think this can go into full review. Just waiting on a second CI run to see what issues exist there. PTAL.

@oppiabot oppiabot bot removed the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Dec 27, 2024
@BenHenning BenHenning marked this pull request as ready for review December 27, 2024 02:56
@BenHenning BenHenning requested review from a team as code owners December 27, 2024 02:56
@BenHenning
Copy link
Member

FYI @theMr17 this will also need to be updated:

@BenHenning
Copy link
Member

It looks like there are some incompatibilities with Gradle and AAPT2:

2024-12-27T03:08:13.7918658Z > Task :app:processDebugResources FAILED
2024-12-27T03:08:14.1918586Z > Task :domain:mergeDebugResources
2024-12-27T03:08:14.3926586Z 
2024-12-27T03:08:14.3934129Z FAILURE: Build failed with an exception.
2024-12-27T03:08:14.3934868Z 
2024-12-27T03:08:14.3935192Z * What went wrong:
2024-12-27T03:08:14.3935878Z Execution failed for task ':app:processDebugResources'.
2024-12-27T03:08:14.3937225Z > A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
2024-12-27T03:08:14.4008862Z    > AAPT2 aapt2-4.2.2-7147631-linux Daemon #0: Unexpected error during link, attempting to stop daemon.
2024-12-27T03:08:14.4009834Z      This should not happen under normal circumstances, please file an issue if it does.
2024-12-27T03:08:14.4010330Z 
2024-12-27T03:08:14.4010447Z * Try:
2024-12-27T03:08:14.4010967Z Run with --info or --debug option to get more log output. Run with --scan to get full insights.
2024-12-27T03:08:14.4011639Z 
2024-12-27T03:08:14.4011764Z * Exception is:
2024-12-27T03:08:14.4012435Z org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugResources'.
2024-12-27T03:08:14.4013777Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$3(ExecuteActionsTaskExecuter.java:186)
2024-12-27T03:08:14.4014903Z 	at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:268)
2024-12-27T03:08:14.4016281Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:184)
2024-12-27T03:08:14.4017743Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:173)
2024-12-27T03:08:14.4019290Z 	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
2024-12-27T03:08:14.4020744Z 	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
2024-12-27T03:08:14.4022296Z 	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
2024-12-27T03:08:14.4023851Z 	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
2024-12-27T03:08:14.4025245Z 	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
2024-12-27T03:08:14.4026566Z 	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
2024-12-27T03:08:14.4027923Z 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
2024-12-27T03:08:14.4029202Z 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
2024-12-27T03:08:14.4030460Z 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
2024-12-27T03:08:14.4031943Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
2024-12-27T03:08:14.4033626Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
2024-12-27T03:08:14.4035127Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
2024-12-27T03:08:14.4036725Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:08:14.4038086Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
2024-12-27T03:08:14.4039379Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:08:14.4040651Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
2024-12-27T03:08:14.4041986Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
2024-12-27T03:08:14.4043535Z 	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
2024-12-27T03:08:14.4045044Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
2024-12-27T03:08:14.4046339Z 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
2024-12-27T03:08:14.4047501Z 	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
2024-12-27T03:08:14.4048803Z 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:411)
2024-12-27T03:08:14.4050339Z 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:398)
2024-12-27T03:08:14.4052086Z 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:391)
2024-12-27T03:08:14.4053780Z 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:377)
2024-12-27T03:08:14.4055166Z 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
2024-12-27T03:08:14.4056452Z 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
2024-12-27T03:08:14.4057583Z 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
2024-12-27T03:08:14.4058813Z 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
2024-12-27T03:08:14.4059878Z 	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
2024-12-27T03:08:14.4060940Z 	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
2024-12-27T03:08:14.4061996Z 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
2024-12-27T03:08:14.4063055Z 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
2024-12-27T03:08:14.4064207Z 	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
2024-12-27T03:08:14.4065109Z 	at java.base/java.lang.Thread.run(Thread.java:844)
2024-12-27T03:08:14.4066634Z Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
2024-12-27T03:08:14.4068643Z 	at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:336)
2024-12-27T03:08:14.4070122Z 	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:142)
2024-12-27T03:08:14.4071606Z 	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:94)
2024-12-27T03:08:14.4072919Z 	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForAll(DefaultAsyncWorkTracker.java:80)
2024-12-27T03:08:14.4074363Z 	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:68)
2024-12-27T03:08:14.4075710Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:502)
2024-12-27T03:08:14.4077052Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
2024-12-27T03:08:14.4078371Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
2024-12-27T03:08:14.4079689Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
2024-12-27T03:08:14.4081003Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:08:14.4082339Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
2024-12-27T03:08:14.4083683Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:08:14.4084987Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
2024-12-27T03:08:14.4086349Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
2024-12-27T03:08:14.4087957Z 	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
2024-12-27T03:08:14.4089497Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
2024-12-27T03:08:14.4090948Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:479)
2024-12-27T03:08:14.4092653Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:462)
2024-12-27T03:08:14.4094176Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$400(ExecuteActionsTaskExecuter.java:105)
2024-12-27T03:08:14.4095872Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:273)
2024-12-27T03:08:14.4097757Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:251)
2024-12-27T03:08:14.4099234Z 	at org.gradle.internal.execution.steps.ExecuteStep.lambda$executeOperation$0(ExecuteStep.java:65)
2024-12-27T03:08:14.4100092Z 	at java.base/java.util.Optional.map(Optional.java:257)
2024-12-27T03:08:14.4100897Z 	at org.gradle.internal.execution.steps.ExecuteStep.executeOperation(ExecuteStep.java:65)
2024-12-27T03:08:14.4101897Z 	at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:34)
2024-12-27T03:08:14.4102803Z 	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:47)
2024-12-27T03:08:14.4103685Z 	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:44)
2024-12-27T03:08:14.4104994Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
2024-12-27T03:08:14.4934991Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)

Digging a bit to see what's going on. Non-app tests seem to be passing fine on Gradle, and everything on Bazel seems okay so far (other than the one failing script test, though still waiting on the runs to finish).

@BenHenning
Copy link
Member

Ah, found an error in the app-specific tests that's much more specific:

2024-12-27T03:06:39.4370793Z FAILURE: Build failed with an exception.
2024-12-27T03:06:39.4373560Z 
2024-12-27T03:06:39.4373575Z 
2024-12-27T03:06:39.4373808Z * What went wrong:
2024-12-27T03:06:39.4374324Z Execution failed for task ':app:processDebugResources'.
2024-12-27T03:06:39.4375409Z > A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
2024-12-27T03:06:39.4376715Z    > AAPT2 aapt2-4.2.2-7147631-linux Daemon #0: Unexpected error during link, attempting to stop daemon.
2024-12-27T03:06:39.4377705Z      This should not happen under normal circumstances, please file an issue if it does.
2024-12-27T03:06:39.4378370Z 
2024-12-27T03:06:39.4435164Z * Try:
2024-12-27T03:06:39.4435719Z Run with --info or --debug option to get more log output. Run with --scan to get full insights.
2024-12-27T03:06:39.4436226Z 
2024-12-27T03:06:39.4436366Z * Exception is:
2024-12-27T03:06:39.4437421Z org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugResources'.
2024-12-27T03:06:39.4438937Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$3(ExecuteActionsTaskExecuter.java:186)
2024-12-27T03:06:39.4440083Z 	at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:268)
2024-12-27T03:06:39.4441122Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:184)
2024-12-27T03:06:39.4442674Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:173)
2024-12-27T03:06:39.4444195Z 	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
2024-12-27T03:06:39.4446554Z 	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
2024-12-27T03:06:39.4448161Z 	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
2024-12-27T03:06:39.4449098Z 	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
2024-12-27T03:06:39.4450263Z 	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
2024-12-27T03:06:39.4451787Z 	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
2024-12-27T03:06:39.4453098Z 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
2024-12-27T03:06:39.4453877Z 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
2024-12-27T03:06:39.4454641Z 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
2024-12-27T03:06:39.4455525Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
2024-12-27T03:06:39.4456523Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
2024-12-27T03:06:39.4457403Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
2024-12-27T03:06:39.4458284Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:06:39.4459049Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
2024-12-27T03:06:39.4459821Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:06:39.4460584Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
2024-12-27T03:06:39.4461458Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
2024-12-27T03:06:39.4462391Z 	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
2024-12-27T03:06:39.4463292Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
2024-12-27T03:06:39.4464071Z 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
2024-12-27T03:06:39.4464761Z 	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
2024-12-27T03:06:39.4465541Z 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:411)
2024-12-27T03:06:39.4466477Z 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:398)
2024-12-27T03:06:39.4467651Z 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:391)
2024-12-27T03:06:39.4468693Z 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:377)
2024-12-27T03:06:39.4469561Z 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
2024-12-27T03:06:39.4470258Z 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
2024-12-27T03:06:39.4470974Z 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
2024-12-27T03:06:39.4471680Z 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
2024-12-27T03:06:39.4472514Z 	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
2024-12-27T03:06:39.4473175Z 	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
2024-12-27T03:06:39.4473799Z 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
2024-12-27T03:06:39.4474431Z 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
2024-12-27T03:06:39.4475095Z 	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
2024-12-27T03:06:39.4475617Z 	at java.base/java.lang.Thread.run(Thread.java:844)
2024-12-27T03:06:39.4476512Z Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
2024-12-27T03:06:39.4477660Z 	at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:336)
2024-12-27T03:06:39.4478522Z 	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:142)
2024-12-27T03:06:39.4479373Z 	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:94)
2024-12-27T03:06:39.4480128Z 	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForAll(DefaultAsyncWorkTracker.java:80)
2024-12-27T03:06:39.4480835Z 	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:68)
2024-12-27T03:06:39.4481592Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:502)
2024-12-27T03:06:39.4482369Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
2024-12-27T03:06:39.4483131Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
2024-12-27T03:06:39.4483893Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
2024-12-27T03:06:39.4484660Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:06:39.4485426Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
2024-12-27T03:06:39.4486192Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:06:39.4486932Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
2024-12-27T03:06:39.4487711Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
2024-12-27T03:06:39.4488623Z 	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
2024-12-27T03:06:39.4489498Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
2024-12-27T03:06:39.4490467Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:479)
2024-12-27T03:06:39.4491510Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:462)
2024-12-27T03:06:39.4492394Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$400(ExecuteActionsTaskExecuter.java:105)
2024-12-27T03:06:39.4493358Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:273)
2024-12-27T03:06:39.4494362Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:251)
2024-12-27T03:06:39.4495150Z 	at org.gradle.internal.execution.steps.ExecuteStep.lambda$executeOperation$0(ExecuteStep.java:65)
2024-12-27T03:06:39.4495801Z 	at java.base/java.util.Optional.map(Optional.java:257)
2024-12-27T03:06:39.4496281Z 	at org.gradle.internal.execution.steps.ExecuteStep.executeOperation(ExecuteStep.java:65)
2024-12-27T03:06:39.4496871Z 	at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:34)
2024-12-27T03:06:39.4497408Z 	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:47)
2024-12-27T03:06:39.4497920Z 	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:44)
2024-12-27T03:06:39.4498685Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
2024-12-27T03:06:39.4499675Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
2024-12-27T03:06:39.4500555Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
2024-12-27T03:06:39.4501313Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:06:39.4502074Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
2024-12-27T03:06:39.4502841Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:06:39.4503589Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
2024-12-27T03:06:39.4504376Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
2024-12-27T03:06:39.4505300Z 	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
2024-12-27T03:06:39.4506174Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
2024-12-27T03:06:39.4506831Z 	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
2024-12-27T03:06:39.4507368Z 	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:34)
2024-12-27T03:06:39.4508022Z 	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:72)
2024-12-27T03:06:39.4508783Z 	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:42)
2024-12-27T03:06:39.4509529Z 	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:53)
2024-12-27T03:06:39.4510266Z 	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:39)
2024-12-27T03:06:39.4510967Z 	at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:44)
2024-12-27T03:06:39.4511621Z 	at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:77)
2024-12-27T03:06:39.4512225Z 	at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:58)
2024-12-27T03:06:39.4512806Z 	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:54)
2024-12-27T03:06:39.4513974Z 	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:32)
2024-12-27T03:06:39.4515256Z 	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:57)
2024-12-27T03:06:39.4516708Z 	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:38)
2024-12-27T03:06:39.4518243Z 	at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:63)
2024-12-27T03:06:39.4521111Z 	at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:30)
2024-12-27T03:06:39.4522547Z 	at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:176)
2024-12-27T03:06:39.4524076Z 	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:76)
2024-12-27T03:06:39.4524994Z 	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:47)
2024-12-27T03:06:39.4526086Z 	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:43)
2024-12-27T03:06:39.4527426Z 	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:32)
2024-12-27T03:06:39.4528680Z 	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:39)
2024-12-27T03:06:39.4529955Z 	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:25)
2024-12-27T03:06:39.4531135Z 	at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:102)
2024-12-27T03:06:39.4532345Z 	at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:95)
2024-12-27T03:06:39.4533253Z 	at java.base/java.util.Optional.map(Optional.java:257)
2024-12-27T03:06:39.4534087Z 	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
2024-12-27T03:06:39.4535186Z 	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
2024-12-27T03:06:39.4536296Z 	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:83)
2024-12-27T03:06:39.4537427Z 	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44)
2024-12-27T03:06:39.4538935Z 	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
2024-12-27T03:06:39.4540310Z 	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
2024-12-27T03:06:39.4541181Z 	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:96)
2024-12-27T03:06:39.4541926Z 	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:52)
2024-12-27T03:06:39.4542731Z 	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:83)
2024-12-27T03:06:39.4543604Z 	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:54)
2024-12-27T03:06:39.4544330Z 	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
2024-12-27T03:06:39.4544967Z 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:88)
2024-12-27T03:06:39.4545555Z 	at java.base/java.util.Optional.orElseGet(Optional.java:361)
2024-12-27T03:06:39.4546070Z 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:88)
2024-12-27T03:06:39.4546702Z 	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
2024-12-27T03:06:39.4547519Z 	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
2024-12-27T03:06:39.4548378Z 	at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:46)
2024-12-27T03:06:39.4549299Z 	at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:34)
2024-12-27T03:06:39.4550041Z 	at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:43)
2024-12-27T03:06:39.4550880Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$3.withWorkspace(ExecuteActionsTaskExecuter.java:286)
2024-12-27T03:06:39.4551736Z 	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:43)
2024-12-27T03:06:39.4552414Z 	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:33)
2024-12-27T03:06:39.4553072Z 	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:40)
2024-12-27T03:06:39.4553849Z 	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:30)
2024-12-27T03:06:39.4554457Z 	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:54)
2024-12-27T03:06:39.4555020Z 	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:40)
2024-12-27T03:06:39.4555646Z 	at org.gradle.internal.execution.impl.DefaultExecutionEngine.execute(DefaultExecutionEngine.java:41)
2024-12-27T03:06:39.4556472Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:183)
2024-12-27T03:06:39.4557137Z 	at java.base/java.util.Optional.orElseGet(Optional.java:361)
2024-12-27T03:06:39.4557780Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:183)
2024-12-27T03:06:39.4558781Z 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:173)
2024-12-27T03:06:39.4560286Z 	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
2024-12-27T03:06:39.4561673Z 	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
2024-12-27T03:06:39.4563180Z 	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
2024-12-27T03:06:39.4564801Z 	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
2024-12-27T03:06:39.4566187Z 	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
2024-12-27T03:06:39.4567421Z 	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
2024-12-27T03:06:39.4568777Z 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
2024-12-27T03:06:39.4570335Z 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
2024-12-27T03:06:39.4571638Z 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
2024-12-27T03:06:39.4573032Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
2024-12-27T03:06:39.4574783Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
2024-12-27T03:06:39.4576374Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
2024-12-27T03:06:39.4577640Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:06:39.4578849Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
2024-12-27T03:06:39.4580181Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:06:39.4581793Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
2024-12-27T03:06:39.4582654Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
2024-12-27T03:06:39.4583571Z 	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
2024-12-27T03:06:39.4584464Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
2024-12-27T03:06:39.4585230Z 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
2024-12-27T03:06:39.4586131Z 	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
2024-12-27T03:06:39.4587750Z 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:411)
2024-12-27T03:06:39.4589243Z 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:398)
2024-12-27T03:06:39.4591002Z 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:391)
2024-12-27T03:06:39.4592835Z 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:377)
2024-12-27T03:06:39.4594447Z 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
2024-12-27T03:06:39.4595733Z 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
2024-12-27T03:06:39.4597035Z 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
2024-12-27T03:06:39.4598253Z 	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
2024-12-27T03:06:39.4599344Z 	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
2024-12-27T03:06:39.4600551Z 	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
2024-12-27T03:06:39.4601636Z 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
2024-12-27T03:06:39.4602704Z 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
2024-12-27T03:06:39.4603744Z 	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
2024-12-27T03:06:39.4604581Z 	at java.base/java.lang.Thread.run(Thread.java:844)
2024-12-27T03:06:39.4605854Z Caused by: com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-4.2.2-7147631-linux Daemon #0: Unexpected error during link, attempting to stop daemon.
2024-12-27T03:06:39.4607253Z This should not happen under normal circumstances, please file an issue if it does.
2024-12-27T03:06:39.4608192Z 	at com.android.builder.internal.aapt.v2.Aapt2Daemon.handleError(Aapt2Daemon.kt:193)
2024-12-27T03:06:39.4609203Z 	at com.android.builder.internal.aapt.v2.Aapt2Daemon.handleError$default(Aapt2Daemon.kt:191)
2024-12-27T03:06:39.4610331Z 	at com.android.builder.internal.aapt.v2.Aapt2Daemon.link(Aapt2Daemon.kt:131)
2024-12-27T03:06:39.4611402Z 	at com.android.builder.internal.aapt.v2.Aapt2DaemonManager$LeasedAaptDaemon.link(Aapt2DaemonManager.kt:176)
2024-12-27T03:06:39.4612667Z 	at com.android.builder.internal.aapt.v2.Aapt2DaemonManager$leasingAapt2Daemon$1.link(Aapt2DaemonManager.kt:199)
2024-12-27T03:06:39.4617853Z 	at com.android.build.gradle.internal.services.PartialInProcessResourceProcessor.link(PartialInProcessResourceProcessor.kt:47)
2024-12-27T03:06:39.4619531Z 	at com.android.build.gradle.internal.res.Aapt2ProcessResourcesRunnableKt.processResources(Aapt2ProcessResourcesRunnable.kt:73)
2024-12-27T03:06:39.4621585Z 	at com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$Companion.invokeAaptForSplit(LinkApplicationAndroidResourcesTask.kt:874)
2024-12-27T03:06:39.4623582Z 	at com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$Companion.access$invokeAaptForSplit(LinkApplicationAndroidResourcesTask.kt:726)
2024-12-27T03:06:39.4625469Z 	at com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction.run(LinkApplicationAndroidResourcesTask.kt:371)
2024-12-27T03:06:39.4626990Z 	at com.android.build.gradle.internal.profile.ProfileAwareWorkAction.execute(ProfileAwareWorkAction.kt:74)
2024-12-27T03:06:39.4628166Z 	at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
2024-12-27T03:06:39.4630737Z 	at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:67)
2024-12-27T03:06:39.4632202Z 	at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:63)
2024-12-27T03:06:39.4633396Z 	at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:97)
2024-12-27T03:06:39.4634633Z 	at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:63)
2024-12-27T03:06:39.4635699Z 	at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
2024-12-27T03:06:39.4636538Z 	at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
2024-12-27T03:06:39.4637823Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
2024-12-27T03:06:39.4639550Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
2024-12-27T03:06:39.4641076Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
2024-12-27T03:06:39.4642415Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:06:39.4643744Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
2024-12-27T03:06:39.4645091Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
2024-12-27T03:06:39.4646403Z 	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
2024-12-27T03:06:39.4647771Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
2024-12-27T03:06:39.4649377Z 	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
2024-12-27T03:06:39.4651169Z 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
2024-12-27T03:06:39.4652479Z 	at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
2024-12-27T03:06:39.4653710Z 	at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:60)
2024-12-27T03:06:39.4654914Z 	at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$2(DefaultWorkerExecutor.java:200)
2024-12-27T03:06:39.4655821Z 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
2024-12-27T03:06:39.4656955Z 	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:214)
2024-12-27T03:06:39.4658649Z 	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
2024-12-27T03:06:39.4660266Z 	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
2024-12-27T03:06:39.4661509Z 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:514)
2024-12-27T03:06:39.4662339Z 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
2024-12-27T03:06:39.4662903Z 	... 6 more
2024-12-27T03:06:39.4663668Z Caused by: java.io.IOException: AAPT2 process unexpectedly exit. Error output:
2024-12-27T03:06:39.4664484Z aapt2 W 12-27 03:06:20  2376  2376 LoadedArsc.cpp:682] Unknown chunk type '200'.
2024-12-27T03:06:39.4664894Z 
2024-12-27T03:06:39.4665399Z 	at com.android.builder.internal.aapt.v2.Aapt2DaemonImpl$WaitForTaskCompletion.err(Aapt2DaemonImpl.kt:341)
2024-12-27T03:06:39.4666461Z 	at com.android.builder.internal.aapt.v2.Aapt2DaemonImpl$processOutput$1.err(Aapt2DaemonImpl.kt:78)
2024-12-27T03:06:39.4667433Z 	at com.android.utils.GrabProcessOutput$1.run(GrabProcessOutput.java:104)

The past part seems particularly relevant:

Caused by: java.io.IOException: AAPT2 process unexpectedly exit. Error output:
aapt2 W 12-27 03:06:20  2376  2376 LoadedArsc.cpp:682] Unknown chunk type '200'.

@BenHenning
Copy link
Member

https://stackoverflow.com/a/77271439 immediately comes to mind. It may be the case that compiling with SDK 34 activates some AAPT2 upgrade that's not compatible with our version of AGP. If that's true, this is going to get rather interesting since we have to finish the next release before Dec 31. :)

@BenHenning
Copy link
Member

Ah, AGP shouldn't matter here. However, what likely does is build tools. I see on Bazel builds that we're using 32.0.0 but on Gradle we're using 30.0.2. Without digging into past PRs that might explain why there's a discrepancy. @theMr17 can you instead please try updating the 30.0.2 versions in each .gradle file with 32.0.0, instead? If you have time, please try building the app locally with Gradle (if you don't, let's see what CI says).

I think upgrading the build tools for Gradle and fixing the failing scripts test should cover most of the problems here (assuming the build tools upgrade doesn't introduce a different Gradle compatibility problem).

@theMr17
Copy link
Collaborator Author

theMr17 commented Dec 27, 2024

Hey @BenHenning, thanks for the review! Seems like updating the build tools version to 30.0.0 does not fix the aapt2 issue. Do you have any other suggestions which might be the cause of this issue?

/cc @adhiamboperes.

@theMr17
Copy link
Collaborator Author

theMr17 commented Dec 27, 2024

Addressed the review comment, PTAL @BenHenning.

@theMr17 theMr17 assigned BenHenning and adhiamboperes and unassigned theMr17 Dec 27, 2024
Copy link

Coverage Report

Results

Number of files assessed: 2
Overall Coverage: 100.00%
Coverage Analysis: PASS

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
AndroidBuildSdkProperties.ktscripts/src/java/org/oppia/android/scripts/common/AndroidBuildSdkProperties.kt
100.00% 9 / 9 70%

Exempted coverage

Files exempted from coverage
File Exemption Reason
FontScaleConfigurationUtil.ktapp/src/main/java/org/oppia/android/app/utility/FontScaleConfigurationUtil.kt
This file is exempted from having a test file; skipping coverage check.

Refer test_file_exemptions.textproto for the comprehensive list of file exemptions and their required coverage percentages.

To learn more, visit the Oppia Android Code Coverage wiki page

@BenHenning
Copy link
Member

Hey @BenHenning, thanks for the review! Seems like updating the build tools version to 30.0.0 does not fix the aapt2 issue. Do you have any other suggestions which might be the cause of this issue?

/cc @adhiamboperes.

Ah, it should be changed to 32.0.0 per my earlier message. That being said, I tried locally and it failed due to 31.x+ build tools removing dx in favor of d8 (which is actually why we upgraded to Bazel 5.x+ at the same time as changing to 32.0.0 for Bazel builds since Bazel removed support for DX). Since we're using a very old AGP, we have a fundamental incompatibility that may be especially challenging to work around.

I think we're actually at an important shift here--we may not be able to upgrade to a newer version of AGP since the last time that we tried it broke our proto (model) module. I'm going to try and upgrade AGP and see how painful this will be and circle back.

@BenHenning
Copy link
Member

#5628 (comment) outlines the journey to try and get this PR working on Gradle. I don't think it's feasible. I'm going to instead send out a PR to disable Gradle, and move this PR to be based on that one (so that CI effectively passes here).

@BenHenning BenHenning changed the base branch from develop to disable-gradle-in-ci December 28, 2024 22:16
@BenHenning BenHenning changed the title Fix #5535: Upgrade builds to target SDK 34 Fix #5535: Upgrade builds to target SDK 34 [Blocked: #5629] Dec 28, 2024
Copy link
Member

@BenHenning BenHenning left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @theMr17! I think the PR LGTM with Gradle being disabled, so I'll wait for the base PR to go in before merging this (and for CI to pass before approving) but I think this does what we need in order to unblock the release.

@BenHenning
Copy link
Member

BenHenning commented Dec 28, 2024

Requesting the build stats workflow to run on this branch since it can't actually pass on develop (due to the differences in required SDK version).

Edit: Ah, it won't work since the workflow now automatically runs against develop regardless of the base branch requested.

@adhiamboperes adhiamboperes removed their assignment Dec 29, 2024
BenHenning added a commit that referenced this pull request Dec 29, 2024
## Explanation
Fix part of #2747.

In order to unblock #5604, this PR disables Gradle in CI completely.
This is an extreme mitigation to the issues discovered as part of that
PR, but please see
#5628 (comment)
and that PR's main description for a detailed account of the attempt to
migrate to the latest versions of Gradle. It seems that the best path
forward both for this upcoming release and long-term is to outright
remove Gradle, even though Bazel is not completely developer ready. The
alternative (keeping a broken version of Gradle for several months as we
migrate dependencies) seems far too disruptive, and not ideal in the
long-term since we want to move away from having two build systems,
anyway.

Please note that I will remove the required Gradle CI checks once the PR
is approved (so that it can be merged).

This change and the eventual removal of Gradle has been announced in the
CLaM chat. We'll need to reach out to specific newer team members in the
new year once we actually perform the removal and update corresponding
documentation.

## Essential Checklist
- [x] The PR title and explanation each start with "Fix #bugnum: " (If
this PR fixes part of an issue, prefix the title with "Fix part of
#bugnum: ...".)
- [x] Any changes to
[scripts/assets](https://github.com/oppia/oppia-android/tree/develop/scripts/assets)
files have their rationale included in the PR explanation.
- [x] The PR follows the [style
guide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide).
- [x] The PR does not contain any unnecessary code changes from Android
Studio
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#undo-unnecessary-changes)).
- [x] The PR is made from a branch that's **not** called "develop" and
is up-to-date with "develop".
- [ ] The PR is **assigned** to the appropriate reviewers
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)).

## For UI-specific PRs only
This is an infrastructure only change.
Base automatically changed from disable-gradle-in-ci to develop December 29, 2024 04:31
Copy link
Member

@BenHenning BenHenning left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving this since everything but the expected check passed (the failure was that this PR was branched). Enabling auto-merge now that the base PR is in.

@BenHenning BenHenning changed the title Fix #5535: Upgrade builds to target SDK 34 [Blocked: #5629] Fix #5535: Upgrade builds to target SDK 34 Dec 29, 2024
@BenHenning BenHenning enabled auto-merge (squash) December 29, 2024 04:32
Copy link

oppiabot bot commented Dec 29, 2024

Unassigning @BenHenning since they have already approved the PR.

Copy link

oppiabot bot commented Dec 29, 2024

Assigning @adhiamboperes for code owner reviews. Thanks!

@BenHenning BenHenning merged commit 11aba3a into develop Dec 29, 2024
39 checks passed
@BenHenning BenHenning deleted the upgrade-to-sdk-34 branch December 29, 2024 05:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request]: Target SDK 34
3 participants