./gradlew app:dependencies fails on `unimodules-core`-related error

I’m currently trying to resolve Android dependency hell between ExpoKit and react-native-firebase, as described in this topic:

and I’m currently trying to run ./gradlew app:dependencies to find the source of a version conflict, but it’s failing on something to do with unimodules-core:

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/brhiggins/src/theliturgists/app/node_modules/@unimodules/core/android/build.gradle' line: 8

* What went wrong:
A problem occurred evaluating project ':unimodules-core'.
> Cannot change dependencies of configuration ':unimodules-core:classpath' after it has been resolved.

Code is here: https://github.com/theliturgists/app/tree/165-push-notifications

Here’s a diff of just the firebase-related changes on this branch: https://github.com/theliturgists/app/compare/165-push-notifications

I have react-native-firebase working fine on iOS, and before the two commits on this branch, I had a working, detached-to-ExpoKit project using Expo SDK 33. Any help would be greatly appreciated.

Not sure what (if anything) this means, but if I comment out this line (and the addUnimodulesDependencies call later in the file), the next implementation() line (react-native-firebase) becomes the one that appears on the above error message.

Same with the two other lines below it (added by react-native link, IIRC). If I remove all three, stopping at fileTree, then app:dependencies succeeds. It doesn’t expose the conflicting version, though, which I think tells me that one of those three packages is (indirectly) responsible.

Really shooting in the dark here. :grimacing:

Couldn’t tell you exactly why, but this commit seems to have fixed my underlying version clashes:

However, the app:dependencies issue remains. I was able to run it if I commented out the lines I mentioned above, and sometimes I also had to comment out the google-services plugin line at the end of build.gradle - but even with the dependency tree, I was doing guesswork at best, and it seems like I just got lucky. I would still love to understand what’s going on here (both issues), and whether I’m making it more difficult than it needs to be - but maybe the info above can help someone else get unstuck.