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

Circular dependency between the following tasks: :app:dataBindingGenBaseClassesDebug #5925

Closed
thatfiredev opened this issue May 2, 2024 · 35 comments
Assignees

Comments

@thatfiredev
Copy link
Member

thatfiredev commented May 2, 2024

[REQUIRED] Step 2: Describe your environment

  • Android Studio version: _____
  • Firebase Component: Crashlytics Gradle Plugin
  • Component version: 3.0.0

[REQUIRED] Step 3: Describe the problem

After upgrading to v3.0.0 of the Crashlytics Gradle plugin I get the following build error:

Circular dependency between the following tasks:
:app:dataBindingGenBaseClassesDebug
+--- :app:mergeDebugResources
|    \--- :app:injectCrashlyticsMappingFileIdDebug
|         \--- :app:dataBindingGenBaseClassesDebug (*)
\--- :app:parseDebugLocalResources
     \--- :app:packageDebugResources
          \--- :app:injectCrashlyticsMappingFileIdDebug (*)

Steps to reproduce:

A reproducible build can be found in firebase/quickstart-android#1608

Confirmed that the build succeeds with version 2.9.9: firebase/quickstart-android#1607

@jqi26
Copy link

jqi26 commented May 3, 2024

We're experiencing the same issue in our project after upgrading to 3.0.0.

@T8RIN
Copy link

T8RIN commented May 3, 2024

Totally agree, circular dependency crashes the build starting from 3.0.0

@DaXmYsT
Copy link

DaXmYsT commented May 3, 2024

Same here.

classpath ("com.google.firebase:firebase-crashlytics-gradle:2.9.9")

with firebase_bom_version = "33.0.0" is working. I think best is to stay at that version.

@ArcherEmiya05
Copy link

We are experiencing this issue as well, thought it was another AGP update issue.

@thatfiredev
Copy link
Member Author

thatfiredev commented May 3, 2024

Hey everyone!

I have informed the Crashlytics engineers and they are working on it. In the meantime, please stick to firebase-crashlytics-gradle:2.9.9.

This issue will be updated once the fix is released. Thank you!

@mrober
Copy link
Contributor

mrober commented May 3, 2024

This is because the injectCrashlyticsMappingFileId task generates a random mapping file id as an Android resource. But we didn't want it to make new random id on every build if the source never changed. The task took variant.sources as the only input, so it would get triggered by source changing.

The variant.sources includes generated sources, and viewBinding generates code from the Android resources. A circular dependency.

We don't have a good api to query for only the static sources. So instead, I will update the task to decide if it's up to date by the heuristic: Both isMinifyEnabled and mappingFileUploadEnabled are false, and a blank mapping file id was already generated once. This means rebuilding an app with obfuscation enabled will always generate a new mapping file id, even if nothing changed. This is no worse than what the previous plugin did. Debug builds most likely will not have obfuscation enabled, meaning this task can stay up to date during development.

I will update this issue when the fix is released.

@Osanosa
Copy link

Osanosa commented May 3, 2024

On my end, it's
Circular dependency between the following tasks:
:app:extractDeepLinksRelease
--- :app:injectCrashlyticsMappingFileIdRelease
--- :app:kspReleaseKotlin
--- :app:processReleaseResources
+--- :app:mapReleaseSourceSetPaths
| --- :app:injectCrashlyticsMappingFileIdRelease ()
+--- :app:mergeReleaseResources
| --- :app:injectCrashlyticsMappingFileIdRelease (
)
+--- :app:parseReleaseLocalResources
| --- :app:packageReleaseResources
| --- :app:injectCrashlyticsMappingFileIdRelease ()
+--- :app:processReleaseManifest
| --- :app:processReleaseMainManifest
| --- :app:extractDeepLinksRelease (
)
--- :app:processReleaseManifestForPackage
--- :app:processReleaseManifest (*)

@mrober
Copy link
Contributor

mrober commented May 3, 2024

Thanks for the details everybody!

I have implemented a fix for this and verified it with viewBinder. I also added new functional tests that validate use cases with code generation. This issue was caused by anything that generates code and depends on Android resources.

I am going to update here again when it is released. For now, anybody can try the latest changes from the pre-release build #5733.

@JustKhit
Copy link

JustKhit commented May 3, 2024

Hey Guys,

Thanks for sharing. Also have faced the same issue.

this works fine
com.google.firebase:firebase-bom:32.8.1
and
com.google.firebase:firebase-crashlytics-gradle:2.9.9

@AndroidDeveloperLB
Copy link

AndroidDeveloperLB commented May 4, 2024

I have this too, but the error is a bit longer than the above:

Circular dependency between the following tasks:
:app:dataBindingGenBaseClassesDebug
+--- :app:mergeDebugResources
|    +--- :app:generateDebugLocaleConfig
|    |    \--- :app:extractDebugSupportedLocales
|    |         \--- :app:injectCrashlyticsMappingFileIdDebug
|    |              +--- :app:dataBindingGenBaseClassesDebug (*)
|    |              \--- :app:kspDebugKotlin
|    |                   +--- :app:dataBindingGenBaseClassesDebug (*)
|    |                   \--- :app:processDebugResources
|    |                        +--- :app:mapDebugSourceSetPaths
|    |                        |    \--- :app:injectCrashlyticsMappingFileIdDebug (*)
|    |                        +--- :app:mergeDebugResources (*)
|    |                        +--- :app:parseDebugLocalResources
|    |                        |    \--- :app:packageDebugResources
|    |                        |         +--- :app:generateDebugLocaleConfig (*)
|    |                        |         \--- :app:injectCrashlyticsMappingFileIdDebug (*)
|    |                        +--- :app:processDebugManifest
|    |                        |    \--- :app:processDebugMainManifest
|    |                        |         \--- :app:extractDeepLinksDebug
|    |                        |              \--- :app:injectCrashlyticsMappingFileIdDebug (*)
|    |                        \--- :app:processDebugManifestForPackage
|    |                             \--- :app:processDebugManifest (*)
|    \--- :app:injectCrashlyticsMappingFileIdDebug (*)
\--- :app:parseDebugLocalResources (*)

BTW, I use this (as 2.9.9 worked fine with it) :

classpath "com.google.firebase:firebase-crashlytics-gradle:3.0.0"

How do I switch to the "id..." ? Or even to kts format?
When I try the one as "id..." , it causes a different issue even if I use 2.9.9:

error.txt

EDIT: tried to copy from a new project. I think it works fine.
Wonder how hard it would be to switch to kts though.

@jeffdcamp
Copy link

I'm seeing a slightly different error, but I'm assuming that it is related to this issue:

Circular dependency between the following tasks:
:app:extractDebugSupportedLocales
\--- :app:injectCrashlyticsMappingFileIdDebug
     \--- :app:kspDebugKotlin
          \--- :app:processDebugResources
               +--- :app:mapDebugSourceSetPaths
               |    \--- :app:injectCrashlyticsMappingFileIdDebug (*)
               +--- :app:mergeDebugResources
               |    +--- :app:generateDebugLocaleConfig
               |    |    \--- :app:extractDebugSupportedLocales (*)
               |    \--- :app:injectCrashlyticsMappingFileIdDebug (*)
               +--- :app:parseDebugLocalResources
               |    \--- :app:packageDebugResources
               |         +--- :app:generateDebugLocaleConfig (*)
               |         \--- :app:injectCrashlyticsMappingFileIdDebug (*)
               +--- :app:processDebugManifest
               |    \--- :app:processDebugMainManifest
               |         \--- :app:extractDeepLinksDebug
               |              \--- :app:injectCrashlyticsMappingFileIdDebug (*)
               \--- :app:processDebugManifestForPackage
                    \--- :app:processDebugManifest (*)

This error only occurred after updating from 2.9.9 to 3.0.0

ahmedre added a commit to quran/quran_android that referenced this issue May 4, 2024
ahmedre added a commit to quran/quran_android that referenced this issue May 4, 2024
Crashlytics 3.0 breaks builds - see firebase/firebase-android-sdk#5925.
Fixes #2686.
@Mercandj
Copy link

Mercandj commented May 4, 2024

Idem on my side, "com.google.firebase:firebase-crashlytics-gradle:3.0.0" -> Circular dependency between the following tasks....

@Tolriq
Copy link

Tolriq commented May 5, 2024

@mrober Some of use uses googleServicesResourceRoot for manual handling but seems it's also removed in 3.0.0, please also document how we are supposed to do it after this please.

project.afterEvaluate {
    tasks.withType<com.google.firebase.crashlytics.buildtools.gradle.tasks.UploadMappingFileTask> {
        val myDirProp = project.objects.directoryProperty().fileValue(file("../crashlytics"))
        googleServicesResourceRoot.value(myDirProp)
    }
}

Nain57 added a commit to Nain57/Smart-AutoClicker that referenced this issue May 5, 2024
Keep googleFirebaseCrashlyticsGradle to "2.9.9" due to a bug:
firebase/firebase-android-sdk#5925
@tachyonlabs
Copy link

I just got this too after updating Android Studio etc.; thanks for the workaround and that you're getting it fixed!

@mrober
Copy link
Contributor

mrober commented May 6, 2024

@Tolriq the googleServicesResourceRoot was an implementation detail. Our instructions don't tell you to use it anymore. It was a deliberate decision to remove that, since now the Firebase Google-Services plugin can support different apps for different variants of your app.

If you want to have the same app package name in different Firebase projects, you can follow https://developers.google.com/android/guides/google-services-plugin#adding_the_json_file . Basically you can put different google-services.json files in different variant-specific directories.

If you want different package names for different variants in the same Firebase project, that will work out of the box. Just re-download your google-services.json file from the Firebase console, and it will have an entry for every app in your project.

@Tolriq
Copy link

Tolriq commented May 6, 2024

@mrober I do not use the json and the associated plugin and do not want to, I also disable the mapping upload. That plugin actually brings nothing for my needs, just ton of pains when updating gradle and AGP.

I have everything already generated the way I want and needed and just want crashlytics to use that. I already also have tons of wrapping to ensure proper controllable startup via ressourcewrapper.

Please leave a way to continue to work like that.

@SusmanScott
Copy link

Am I reading this correctly that it was working in 3.0.0-alpha03 but not when 3.0.0 was released? Is there an estimate when it will be fixed in a non-alpha/beta version?

@ahmed2146
Copy link

ahmed2146 commented May 7, 2024

I am facing same issue with

classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.0'
implementation platform('com.google.firebase:firebase-bom:33.0.0')

Circular dependency between the following tasks:
:app:extractDeepLinksDebug
--- :app:injectCrashlyticsMappingFileIdDebug
--- :app:kaptDebugKotlin
--- :app:kaptGenerateStubsDebugKotlin
--- :app:processDebugResources
+--- :app:mapDebugSourceSetPaths
| --- :app:injectCrashlyticsMappingFileIdDebug ()
+--- :app:mergeDebugResources
| --- :app:injectCrashlyticsMappingFileIdDebug (
)
+--- :app:parseDebugLocalResources
| --- :app:packageDebugResources
| --- :app:injectCrashlyticsMappingFileIdDebug ()
+--- :app:processDebugManifest
| --- :app:processDebugMainManifest
| --- :app:extractDeepLinksDebug (
)
--- :app:processDebugManifestForPackage
--- :app:processDebugManifest (*)

@mrober
Copy link
Contributor

mrober commented May 7, 2024

@Tolriq can you please file a new issue about the no google-services plugin use case you have? We will do something for it. For now, you could set configure<CrashlyticsExtension> { mappingFileUploadEnabled = false } on all your variants and the Crashlytics plugin should not care that you don't have google-services.

@mrober
Copy link
Contributor

mrober commented May 7, 2024

Hey everybody, we will release 3.0.1 with this issue fixed in the next couple days. Sorry for the delay, we are pretty stretched right now. Thank you everyone for providing all the details and feedback!

@AndroidDeveloperLB
Copy link

Are there any new breaking code changes on 3.x versions?

@mrober
Copy link
Contributor

mrober commented May 7, 2024

@AndroidDeveloperLB https://firebase.google.com/docs/crashlytics/upgrade-to-crashlytics-gradle-plugin-v3 documents the breaking changes.

@AndroidDeveloperLB
Copy link

@mrober Thank you. Seems I don't use any of these and I don't even know what they are.
Also seems all related to "Crashlytics extension". If I use only Crashlytics (auto-report crashes to Firebase website), I can ignore all of this, right?
What is this "Crashlytics extension" ? How come I can't find information about it?

@Sultan656
Copy link

facing the same issue any solution

FAILURE: Build failed with an exception.

  • What went wrong:
    Circular dependency between the following tasks:
    :app:dataBindingGenBaseClassesDebug
    --- :app:mergeDebugResources
    --- :app:injectCrashlyticsMappingFileIdDebug
    +--- :app:dataBindingGenBaseClassesDebug ()
    --- :app:kaptDebugKotlin
    +--- :app:dataBindingGenBaseClassesDebug (
    )
    +--- :app:kaptGenerateStubsDebugKotlin
    | +--- :app:dataBindingGenBaseClassesDebug ()
    | --- :app:processDebugResources
    | +--- :app:mapDebugSourceSetPaths
    | | --- :app:injectCrashlyticsMappingFileIdDebug (
    )
    | +--- :app:mergeDebugResources ()
    | +--- :app:processDebugManifest
    | | --- :app:processDebugMainManifest
    | | --- :app:extractDeepLinksDebug
    | | --- :app:injectCrashlyticsMappingFileIdDebug (
    )
    | --- :app:processDebugManifestForPackage
    | --- :app:processDebugManifest ()
    +--- :app:mergeDebugResources (
    )
    --- :app:processDebugResources (*)

(*) - details omitted (listed previously)

  • Try:

Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.

  • Exception is:
    org.gradle.api.CircularReferenceException: Circular dependency between the following tasks:
    :app:dataBindingGenBaseClassesDebug
    --- :app:mergeDebugResources
    --- :app:injectCrashlyticsMappingFileIdDebug
    +--- :app:dataBindingGenBaseClassesDebug ()
    --- :app:kaptDebugKotlin
    +--- :app:dataBindingGenBaseClassesDebug (
    )
    +--- :app:kaptGenerateStubsDebugKotlin
    | +--- :app:dataBindingGenBaseClassesDebug ()
    | --- :app:processDebugResources
    | +--- :app:mapDebugSourceSetPaths
    | | --- :app:injectCrashlyticsMappingFileIdDebug (
    )
    | +--- :app:mergeDebugResources ()
    | +--- :app:processDebugManifest
    | | --- :app:processDebugMainManifest
    | | --- :app:extractDeepLinksDebug
    | | --- :app:injectCrashlyticsMappingFileIdDebug (
    )
    | --- :app:processDebugManifestForPackage
    | --- :app:processDebugManifest ()
    +--- :app:mergeDebugResources (
    )
    --- :app:processDebugResources (*)

(*) - details omitted (listed previously)

at org.gradle.execution.plan.DetermineExecutionPlanAction.onOrderingCycle(DetermineExecutionPlanAction.java:296)
at org.gradle.execution.plan.DetermineExecutionPlanAction.processNodeQueue(DetermineExecutionPlanAction.java:188)
at org.gradle.execution.plan.DetermineExecutionPlanAction.run(DetermineExecutionPlanAction.java:94)
at org.gradle.execution.plan.DefaultExecutionPlan.determineExecutionPlan(DefaultExecutionPlan.java:225)
at org.gradle.internal.build.DefaultBuildWorkPreparer.populateWorkGraph(DefaultBuildWorkPreparer.java:43)
at org.gradle.internal.build.BuildOperationFiringBuildWorkPreparer$PopulateWorkGraph.populateTaskGraph(BuildOperationFiringBuildWorkPreparer.java:106)
at org.gradle.internal.build.BuildOperationFiringBuildWorkPreparer$PopulateWorkGraph.run(BuildOperationFiringBuildWorkPreparer.java:92)
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:73)
at org.gradle.internal.build.BuildOperationFiringBuildWorkPreparer.populateWorkGraph(BuildOperationFiringBuildWorkPreparer.java:67)
at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$populateWorkGraph$8(DefaultBuildLifecycleController.java:189)
at org.gradle.internal.model.StateTransitionController.lambda$inState$1(StateTransitionController.java:99)
at org.gradle.internal.model.StateTransitionController.lambda$inState$2(StateTransitionController.java:114)
at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
at org.gradle.internal.model.StateTransitionController.inState(StateTransitionController.java:110)
at org.gradle.internal.model.StateTransitionController.inState(StateTransitionController.java:98)
at org.gradle.internal.build.DefaultBuildLifecycleController.populateWorkGraph(DefaultBuildLifecycleController.java:189)
at org.gradle.internal.build.DefaultBuildWorkGraphController$DefaultBuildWorkGraph.populateWorkGraph(DefaultBuildWorkGraphController.java:169)
at org.gradle.composite.internal.DefaultBuildController.populateWorkGraph(DefaultBuildController.java:76)
at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph$DefaultBuildTreeWorkGraphBuilder.withWorkGraph(DefaultIncludedBuildTaskGraph.java:153)
at org.gradle.internal.buildtree.DefaultBuildTreeWorkPreparer.lambda$scheduleRequestedTasks$1(DefaultBuildTreeWorkPreparer.java:41)
at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph$DefaultBuildTreeWorkGraph$1.run(DefaultIncludedBuildTaskGraph.java:209)
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:73)
at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph$DefaultBuildTreeWorkGraph.scheduleWork(DefaultIncludedBuildTaskGraph.java:204)
at org.gradle.internal.buildtree.DefaultBuildTreeWorkPreparer.scheduleRequestedTasks(DefaultBuildTreeWorkPreparer.java:37)
at org.gradle.configurationcache.VintageBuildTreeWorkController$scheduleAndRunRequestedTasks$1.apply(VintageBuildTreeWorkController.kt:36)
at org.gradle.configurationcache.VintageBuildTreeWorkController$scheduleAndRunRequestedTasks$1.apply(VintageBuildTreeWorkController.kt:35)
at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph.withNewWorkGraph(DefaultIncludedBuildTaskGraph.java:112)
at org.gradle.configurationcache.VintageBuildTreeWorkController.scheduleAndRunRequestedTasks(VintageBuildTreeWorkController.kt:35)
at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$scheduleAndRunTasks$1(DefaultBuildTreeLifecycleController.java:68)
at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$runBuild$4(DefaultBuildTreeLifecycleController.java:98)
at org.gradle.internal.model.StateTransitionController.lambda$transition$6(StateTransitionController.java:169)
at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:266)
at org.gradle.internal.model.StateTransitionController.lambda$transition$7(StateTransitionController.java:169)
at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
at org.gradle.internal.model.StateTransitionController.transition(StateTransitionController.java:169)
at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:95)
at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.scheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:68)
at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.scheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:63)
at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:53)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:49)
at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:65)
at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:140)
at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:40)
at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:123)
at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40)
at org.gradle.internal.buildtree.InitDeprecationLoggingActionExecutor.execute(InitDeprecationLoggingActionExecutor.java:62)
at org.gradle.internal.buildtree.InitProblems.execute(InitProblems.java:38)
at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40)
at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:65)
at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:58)
at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:65)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:61)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:57)
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:78)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:57)
at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:36)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:264)
at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:128)
at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:36)
at org.gradle.tooling.internal.provider.continuous.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:110)
at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64)
at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46)
at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:92)
at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:80)
at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:69)
at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:62)
at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:41)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:64)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:51)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:39)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
at org.gradle.util.internal.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:64)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)

BUILD FAILED in 709ms

@mustfaunlu
Copy link

same issue

@anthony-fresneau-kiplin

same issue

@leinardi
Copy link

leinardi commented May 13, 2024

To everyone experiencing the same problem: could you kindly consider clicking the 👍 reaction on the initial comment instead of posting a new comment simply stating "same issue"? Such comments don't offer any new insights and only clutter the feed for those following this matter.

@androidacy-user
Copy link

Confirmed fixed with 3.0.1 👍🏽

@mrober
Copy link
Contributor

mrober commented May 13, 2024

Hi everybody, version 3.0.1 has been released which resolves this issue. Thank you everybody for providing all the details! Closing this issue, but if anybody runs into any other problems please open a new issue.

@mrober mrober closed this as completed May 13, 2024
@Tolriq
Copy link

Tolriq commented May 13, 2024

@mrober For the record it seems with 3.0.1 the plugin no more yell on missing xml generated by the google plugin and so the googleServicesResourceRoot hack is not necessary anymore so I don't need it and won't open an issue as WAI.

@jdelga
Copy link

jdelga commented May 14, 2024

After upgrading to 3.0.1 I get this new error: #5962

@kalyaniuge1986
Copy link

[REQUIRED] Step 2: Describe your environment

  • Android Studio version: _____
  • Firebase Component: Crashlytics Gradle Plugin
  • Component version: 3.0.0

[REQUIRED] Step 3: Describe the problem

After upgrading to v3.0.0 of the Crashlytics Gradle plugin I get the following build error:

Circular dependency between the following tasks:
:app:dataBindingGenBaseClassesDebug
+--- :app:mergeDebugResources
|    \--- :app:injectCrashlyticsMappingFileIdDebug
|         \--- :app:dataBindingGenBaseClassesDebug (*)
\--- :app:parseDebugLocalResources
     \--- :app:packageDebugResources
          \--- :app:injectCrashlyticsMappingFileIdDebug (*)

Steps to reproduce:

A reproducible build can be found in firebase/quickstart-android#1608

Confirmed that the build succeeds with version 2.9.9: firebase/quickstart-android#1607

use this classpath("com.google.firebase:firebase-crashlytics-gradle:3.0.1")
classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.1'

@kalyaniuge1986
Copy link

I am facing same issue with

classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.0' implementation platform('com.google.firebase:firebase-bom:33.0.0')

Circular dependency between the following tasks: :app:extractDeepLinksDebug --- :app:injectCrashlyticsMappingFileIdDebug --- :app:kaptDebugKotlin --- :app:kaptGenerateStubsDebugKotlin --- :app:processDebugResources +--- :app:mapDebugSourceSetPaths | --- :app:injectCrashlyticsMappingFileIdDebug () +--- :app:mergeDebugResources | --- :app:injectCrashlyticsMappingFileIdDebug () +--- :app:parseDebugLocalResources | --- :app:packageDebugResources | --- :app:injectCrashlyticsMappingFileIdDebug () +--- :app:processDebugManifest | --- :app:processDebugMainManifest | --- :app:extractDeepLinksDebug () --- :app:processDebugManifestForPackage --- :app:processDebugManifest (*)
use this classpath("com.google.firebase:firebase-crashlytics-gradle:3.0.1")
classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.1'

@kalyaniuge1986
Copy link

kalyaniuge1986 commented May 15, 2024

use this

classpath("com.google.firebase:firebase-crashlytics-gradle:3.0.1")
classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.1'

implementation 'com.google.firebase:firebase-crashlytics:19.0.0'

implementation("com.google.firebase:firebase-crashlytics:19.0.0")

@DecadeVinhLe
Copy link

I change crashingly to 2.9.9, and it works. So I guess u either add .jar file directly if using maven debugger or change to 2.9.9 if u use Groovy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests