Status Update
Comments
[Deleted User] <[Deleted User]> #2
Thanks for reporting, would you be able to provide a reproducible case for when this incremental error occurs? The task for merging java resources has multiple incremental inputs depending on where the java resource originates - providing a sample project where this issue can be triggered will help the team narrow what task input is impacted. A longer stacktrace of the issue from #1 might also be useful.
ja...@google.com <ja...@google.com>
ja...@google.com <ja...@google.com> #3
Unfortunately I cannot reproduce it consistently. In fact I don't even know what triggers it (it seems to be some combination of changes).
Like I mentioned above, my hunch is that this is due to having several modules with the same name (impl
). The resource in question (impl_debug.kotlin_module
) contains the name of the Gradle module and it likely means that there will be conflicts since there are several modules with the same name.
The stack trace looks like this:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugJavaResource'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:149)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:147)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135)
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:74)
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:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:337)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:324)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:317)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction
at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:283)
at org.gradle.internal.work.DefaultAsyncWorkTracker.lambda$waitForItemsAndGatherFailures$2(DefaultAsyncWorkTracker.java:130)
at org.gradle.internal.Factories$1.create(Factories.java:31)
at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:321)
at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:304)
at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLock(DefaultWorkerLeaseService.java:309)
at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:126)
at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:92)
at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForAll(DefaultAsyncWorkTracker.java:78)
at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:66)
at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:250)
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$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:227)
at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:210)
at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:193)
at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:166)
at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)
at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
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:50)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:28)
at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:100)
at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:72)
at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:50)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)
at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:166)
at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:70)
at org.gradle.internal.Either$Right.fold(Either.java:175)
at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:68)
at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:46)
at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
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:91)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:55)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:37)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)
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:76)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:37)
at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:94)
at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:49)
at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:71)
at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:45)
at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNonEmptySources(SkipEmptyWorkStep.java:177)
at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:81)
at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:53)
at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)
at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)
at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:75)
at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:41)
at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:32)
at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:287)
at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:21)
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:47)
at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)
at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:146)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135)
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:74)
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:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:337)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:324)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:317)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
Caused by: java.lang.IllegalStateException: Unexpected combination of states CHANGED, REMOVED for file /path/to/module/build/intermediates/java_res/debug/out/META-INF/impl_debug.kotlin_module
at com.android.build.gradle.internal.tasks.IncrementalFileMergerTaskUtils.collectChanges(IncrementalFileMergerTaskUtils.kt:275)
at com.android.build.gradle.internal.tasks.IncrementalFileMergerTaskUtils.toInputs(IncrementalFileMergerTaskUtils.kt:229)
at com.android.build.gradle.internal.tasks.MergeJavaResWorkAction.run(MergeJavaResWorkAction.kt:68)
at com.android.build.gradle.internal.profile.ProfileAwareWorkAction.execute(ProfileAwareWorkAction.kt:74)
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:100)
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:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
at org.gradle.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$0(DefaultWorkerExecutor.java:169)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:187)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:120)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:162)
at org.gradle.internal.Factories$1.create(Factories.java:31)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)
at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)
at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:114)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:157)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:126)
... 2 more
te...@surplace.co <te...@surplace.co> #4
Thanks for the additional information. I have refactored the Java Resource merging incremental handling to better handle source file path roots - so hopefully this is enough to eliminate the possibility of collisions between java resources. However, it would be great to test these changes resolve your issue. My current assumption is that the issue occurs when there is a library structure where there are two modules of the same name nested within two differently named modules such as:
app
foo_lib
foo
bar_lib
foo
Could you confirm that this setup is similar in your project or if not, can you please provide your project structure or even a project if possible?
an...@gmail.com <an...@gmail.com> #5
Yes, our setup looks like this:
:features
:feature1
:public
:impl
:feature2
:public
:impl
...
The modules mentioned in the error would always be one of these impl
or public
modules.
Unfortunately I cannot share our project and even if I could, I don't know how to replicate the issue.
I will say though that since upgrading to the latest AGP 8.2 alpha I have not seen the issue so it's possible that it's already been fixed as a part of another change.
ma...@modjo.ai <ma...@modjo.ai> #6
Oops, spoke too soon. It just happened.
Once it happens ever run will trigger it so if you need me to log or try something let me know. Removing the app level build directory fixes the issue.
mo...@college-montreal.qc.ca <mo...@college-montreal.qc.ca> #7
BTW, what is the target release for this fix?
[Deleted User] <[Deleted User]> #8
For now, we've worked around this by adding this to our Kotlin convention plugin:
tasks.withType<KotlinCompile>().configureEach {
compilerOptions {
moduleName.set(path.removePrefix(":").replace(":", "_"))
}
}
lu...@googlemail.com <lu...@googlemail.com> #9
Thanks for sharing the workaround. I needed to slightly adapt it to work for us, otherwise kapt and ksp would fail because they'd expect different names for internal
symbols.
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask.class).configureEach {
if (!name.containsIgnoreCase("ksp") && !name.containsIgnoreCase("kapt")) {
compilerOptions {
moduleName.set(path.substring(1).replace(":", "_"))
}
}
st...@amplixs.com <st...@amplixs.com> #10
Actually, I found a better way to solve this. The default module name is based on the base plugin's archivesName
property. So you can do this instead:
base {
archivesName.set(path.removePrefix(":").replace(":", "_"))
}
vi...@gmail.com <vi...@gmail.com> #11
It seems AGP is not correctly excluding kotlin_module files during java resource merging, so we'd expect a collision - although this error message isn't clear.
Until we release we have a fix for the issue, a workaround may be to add packagingOptions { exclude 'META-INF/*.kotlin_module' }
to the build.gradle conflicting libraries, so AGP doesn't attempt to merge them.
le...@gmail.com <le...@gmail.com> #12
Alternatively you can give them unique names e.g.
kotlin {
compilerOptions {
moduleName.set(project.path)
}
}
applied to all projects
fm...@gmail.com <fm...@gmail.com> #13
We set the module to the dashified project gradle path. Kinda feel like this should be the default for the module merging issue in general
vl...@indriver.com <vl...@indriver.com> #14
In my case, I had similar errors with MergeJavaResourcesTask
But in my case, errors were against for META-INF metadata
from
And I did set same workaround with
ch...@bonfyreapp.com <ch...@bonfyreapp.com> #15
I also had an error from Google AutoService
and packagingOptions { exclude 'META-INF/*.kotlin_module' }
removes the error in next build but it does not look correct solution. Can someone help me to fix this issue. For my case the error is for some debug source code which we generate using Google AutoService
. Should I exclude
those files or use pickFirst
for them?
ot...@gmail.com <ot...@gmail.com> #16
[Deleted User] <[Deleted User]> #17
I have same issue again after
I'm not sure, but I'm guessing that error was raised again after applied AGP 8.2
fi...@gmail.com <fi...@gmail.com> #18
In my case,
module A
and module B
have implementations of interface Xxx
which can be loaded by AutoService.
and MergeJavaResourcesTask
was failed of app C
while merge META-INF/services/Xxx
from module A
and module B
ja...@gmail.com <ja...@gmail.com> #19
I had previously applied the workaround from #10 to our build, however it caused packaging issues that manifested as runtime crashes. I'll be taking a second look at the workaround to see if I can fix our previous issues with it since we are starting to see this problem happen a lot more frequently. An issue with Anvil has been causing our developers to use --rerun
and --rerun-tasks
more frequently than usual, which masks the issue here. With the latest beta release of anvil, those options are no longer needed and this bug pops up a lot more frequently. We are using AGP 8.2.2 currently
an...@andamp.io <an...@andamp.io> #20
With the latest beta release of anvil, those options are no longer needed and this bug pops up a lot more frequently.
It doesn't seem like the latest beta has resolved these issues :/
[Deleted User] <[Deleted User]> #21
Have been having the same issue in recent builds, rm -rf app/build
is what helped in my case.
sm...@gmail.com <sm...@gmail.com> #22
I've managed to get what looks like a reliable reproduction case for this.
sn...@spotify.com <sn...@spotify.com> #23
This is mitigated in 22ea772c902a9891a6023ed1ebdc832871775ba6
but I am suspicious there are other lurking issues by inspection and from
fl...@sanmina.com <fl...@sanmina.com> #24
Filed
jo...@gmail.com <jo...@gmail.com> #25
Thank you for your patience while our engineering team worked to resolve this issue. A fix for this issue is now available in:
- Android Studio Jellyfish | 2023.3.1 Canary 12
- Android Gradle Plugin 8.4.0-alpha12
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
Thank you for taking the time to submit feedback — we really appreciate it!
di...@gmail.com <di...@gmail.com> #26
AGP 8.3 final version was released at today.
Could this fix be applied to AGP 8.3.x patch version?
Or is there another solution that can alleviate this issue?
eu...@gmail.com <eu...@gmail.com> #27
Re merge
or pickFirst
in packagingOptions
?
ce...@gmail.com <ce...@gmail.com> #28
No, we have some exclude
rules but don't use either merge
or pickFirst
[Deleted User] <[Deleted User]> #29
The fixes for this issue are now also available in:
- Android Studio Iguana | 2023.2.1 Patch 1
- Android Gradle Plugin 8.3.1
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
a....@informatica.aci.it <a....@informatica.aci.it> #30
sa...@zuid.com <sa...@zuid.com> #31
ja...@gmail.com <ja...@gmail.com> #32
va...@gmail.com <va...@gmail.com> #33
se...@gmail.com <se...@gmail.com> #34
an...@gmail.com <an...@gmail.com> #35
ed...@gmail.com <ed...@gmail.com> #36
ra...@grigorian.org <ra...@grigorian.org> #37
pe...@qupaya.com <pe...@qupaya.com> #38
ge...@estoes.me <ge...@estoes.me> #39
be...@legendaryplay.gg <be...@legendaryplay.gg> #40
th...@gmail.com <th...@gmail.com> #41
ka...@gmail.com <ka...@gmail.com> #42
ri...@gmail.com <ri...@gmail.com> #43
cb...@gmail.com <cb...@gmail.com> #44
+1
sm...@gmail.com <sm...@gmail.com> #45
ed...@gmail.com <ed...@gmail.com> #46
bu...@gmail.com <bu...@gmail.com> #47
Use the star feature to indicate that this issue affects you rather than commenting +1 PLEASE
sa...@gmail.com <sa...@gmail.com> #48
ch...@growmotely.com <ch...@growmotely.com> #49
va...@webfuelagency.com <va...@webfuelagency.com> #50
on...@ayulla.com <on...@ayulla.com> #51
mi...@iriparo.com <mi...@iriparo.com> #52
pe...@gmail.com <pe...@gmail.com> #53
da...@cpu.edu.ph <da...@cpu.edu.ph> #54
cr...@gmail.com <cr...@gmail.com> #55
yu...@gmail.com <yu...@gmail.com> #56
th...@gmail.com <th...@gmail.com> #57
ar...@gmail.com <ar...@gmail.com> #58
im...@gmail.com <im...@gmail.com> #59
el...@gmail.com <el...@gmail.com> #60
[Deleted User] <[Deleted User]> #61
ni...@hackruiter.com <ni...@hackruiter.com> #62
as...@gmail.com <as...@gmail.com> #63
rj...@gmail.com <rj...@gmail.com> #64
m....@w3b.eu <m....@w3b.eu> #65
[Deleted User] <[Deleted User]> #66
ts...@gmail.com <ts...@gmail.com> #67
ha...@gmail.com <ha...@gmail.com> #68
ab...@qm.edu.sa <ab...@qm.edu.sa> #69
[Deleted User] <[Deleted User]> #70
[Deleted User] <[Deleted User]> #71
la...@gmail.com <la...@gmail.com> #72
ed...@gmail.com <ed...@gmail.com> #73
ca...@appian.com <ca...@appian.com> #74
ro...@gmail.com <ro...@gmail.com> #75
ab...@gmail.com <ab...@gmail.com> #76
vi...@gmail.com <vi...@gmail.com> #77
ka...@riskident.com <ka...@riskident.com> #78
sa...@gmail.com <sa...@gmail.com> #79
am...@gmail.com <am...@gmail.com> #80
[Deleted User] <[Deleted User]> #81
[Deleted User] <[Deleted User]> #82
an...@gmail.com <an...@gmail.com> #83
aj...@codesap.com <aj...@codesap.com> #84
ma...@gmail.com <ma...@gmail.com> #85
ad...@gmail.com <ad...@gmail.com> #86
[Deleted User] <[Deleted User]> #87
na...@gmail.com <na...@gmail.com> #88
ma...@gmail.com <ma...@gmail.com> #89
hc...@gmail.com <hc...@gmail.com> #90
ka...@gmail.com <ka...@gmail.com> #91
sa...@gmail.com <sa...@gmail.com> #92
su...@kula.ai <su...@kula.ai> #93
ka...@gmail.com <ka...@gmail.com> #94
[Deleted User] <[Deleted User]> #95
od...@gmail.com <od...@gmail.com> #96
ad...@pucp.pe <ad...@pucp.pe> #97
fe...@run0km.com <fe...@run0km.com> #98
br...@gmail.com <br...@gmail.com> #99
ig...@nikisoft.ru <ig...@nikisoft.ru> #100
[Deleted User] <[Deleted User]> #101
as...@gmail.com <as...@gmail.com> #102
as...@gmail.com <as...@gmail.com> #103
as...@gmail.com <as...@gmail.com> #104
ek...@gmail.com <ek...@gmail.com> #105
[Deleted User] <[Deleted User]> #106
se...@slapfive.com <se...@slapfive.com> #107
as...@gmail.com <as...@gmail.com> #108
ti...@gmail.com <ti...@gmail.com> #109
mo...@gmail.com <mo...@gmail.com> #110
gl...@egissys.com <gl...@egissys.com> #111
[Deleted User] <[Deleted User]> #112
ss...@gmail.com <ss...@gmail.com> #113
as...@gmail.com <as...@gmail.com> #114
go...@gmail.com <go...@gmail.com> #115
[Deleted User] <[Deleted User]> #116
j....@gmail.com <j....@gmail.com> #117
su...@gmail.com <su...@gmail.com> #118
ph...@gmail.com <ph...@gmail.com> #119
v....@fiters.co <v....@fiters.co> #120
ri...@gmail.com <ri...@gmail.com> #121
za...@gmail.com <za...@gmail.com> #122
ma...@gmail.com <ma...@gmail.com> #123
ro...@gmail.com <ro...@gmail.com> #124
ia...@google.com <ia...@google.com> #125
Dear all,
As you are aware there is currently no Meet API, real-time or otherwise, and while this has been considered, there are no immediate plans to implement one. Therefore, implementing a direct Meet API has been deemed infeasible.
This issue is going to be closed for now, however, please do continue to "star" it if you would like to see something like this implemented. The "stars" serve as votes and with them we can see how many people would like to see a feature. Please bear in mind that the +1
comments, or similar, are not counted.
As for avenues for workarounds:
-
Meet has the attendance tracking feature:
https://support.google.com/meet/answer/10090454 . -
Alternatively, you can use the Google Workspace Admin SDK Reports API for Google Meet audit logs:
https://developers.google.com/admin-sdk/reports/v1/appendix/activity/meet#call_ended . This would allow you, among other thins, to build attendance reports via API.
If you would like to change how the Admin SDK Reports API handles things, please open a new issue for that, do not post it here.
Description
I want to build (in google app scripts and sheets) a viewer that would help users organize and track breakout sessions and jump between sessions.
It would use a real time google meet API to display the names of any users that are currently in a meet, or who have joined a meet.
This would allow for a trainer to monitor who is participating in each room, or with online networking events would allow users to choose which breakout session to join by seeing at a glance how many users are in each room, or whether a room is filled with people they already know or new names they don't recognize.
Attached mockup is simulating a networking event that is taking place at an imaginary bar. Each link is the meet code which would be used by the app script to return the list of emails with active calls.
Thanks for your consideration