When running: eas build --profile development --platform android i am getting the following error, there are no further details on why, or how to fix it. Searching the web suggests i should update settings in my gradle file, but i don’t have one, this dev build is executed on an expo server somewhere, no?
Could not find method compile() for arguments [com.facebook.react:react-native:+] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
[stderr] Build failed with an exception.
[stderr] * Where:
[stderr] Build file '/home/expo/workingdir/build/node_modules/react-native-os/android/build.gradle' line: 47
[stderr] * What went wrong:
[stderr] A problem occurred evaluating project ':react-native-os'.
[stderr] > Could not find method compile() for arguments [com.facebook.react:react-native:+] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
[stderr] * Try:
[stderr] > Run with --stacktrace option to get the stack trace.
[stderr] > Run with --info or --debug option to get more log output.
[stderr] > Run with --scan to get full insights.
[stderr] * Get more help at
Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
6 actionable tasks: 6 executed
[stderr] BUILD FAILED in 1m 48s
Unable to list file systems to check whether they can be watched. The whole state of the virtual file system has been discarded. Reason: Could not query file systems: could not open mount file (errno 2: No such file or directory)
Error: Gradle build failed with unknown error. See logs for the "Run gradlew" phase for more information.
Which seems to suggest i update compile to implement - but how and where? It’s an automated build - confused a little.
EDIT: i think i understand, that i need to manually change the actual node_modules/react-native-os/android/build.gradle file…?
Ok i changed compile to implementation but i still see the error that Could not find method compile() for arguments... . At a loss what to do to get this to even build a dev client before i can even start coding the app proper.
Yes, but first read all of the stuff below before you do anything
You can’t just change that, because you likely do not have those files checked into Git (and you probably don’t want them checked into Git), so when your app is built on the EAS Build servers, your changed version won’t be there. You can get around this using patch-package.
This will create a patch file that will get applied on the build servers after the dependencies are installed.
I have used patch-package several times before, but I don’t think I’ve ever used it to patch native code. I think it will work fine, though. If it doesn’t you could fork the dependency and then reference it from GitHub in package.json.
The dependency that’s causing this problem is react-native-os. This seems to be for trying to appease some code that expects Node’s os API to be available. It seems unlikely to me that you need this. I suspect you installed it while trying to fix the issues with the crypto libraries you had installed.
So I would recommend you remove all of the dependencies you installed while trying to get things to work, except for the ones you actually want to use. Then see what issues you run into (if any) and post another thread.