cli: Doesn't build after project initialization

After recent update in cli-platform-android the project doesn’t start. Stating Cannot invoke method getErrorStream() on null object. I wanted to submit an issue for that package but I could not find a github repo for that.

$ react-native run-android
info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
Jetifier found 863 file(s) to forward-jetify. Using 8 workers...
info Starting JS server...
info Installing the app...
:ReactNative:Cannot run program "npx": CreateProcess error=2, ═х єфрхЄё  эрщЄш єърчрээ√щ Їрщы
:ReactNative:Automatic import of native modules failed.

FAILURE: Build failed with an exception.

* Where:
Script 'C:\TEMP\natapp\node_modules\@react-native-community\cli-platform-android\native_modules.gradle' line: 169

* What went wrong:
A problem occurred evaluating script.
> Cannot invoke method getErrorStream() on null object

* Try:
Run with --stacktrace option to get the stack trace. 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

BUILD FAILED in 1s

error Failed to install the app. Make sure you have the Android development environment set up: https://facebook.github.io/react-native/docs/getting-started.html#android-development-environment. Run CLI with --v

erbose flag for more details.
Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081

FAILURE: Build failed with an exception.

* Where:
Script 'C:\TEMP\natapp\node_modules\@react-native-community\cli-platform-android\native_modules.gradle' line: 169

* What went wrong:
A problem occurred evaluating script.
> Cannot invoke method getErrorStream() on null object

* Try:
Run with --stacktrace option to get the stack trace. 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

BUILD FAILED in 1s

    at checkExecSyncError (child_process.js:621:11)
    at execFileSync (child_process.js:639:15)
    at runOnAllDevices (C:\TEMP\natapp\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\runOnAllDevices.js:94:39)
    at buildAndRun (C:\TEMP\natapp\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\index.js:158:41)
    at C:\TEMP\natapp\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\index.js:125:12
    at processTicksAndRejections (internal/process/task_queues.js:85:5)
    at async Command.handleAction (C:\TEMP\natapp\node_modules\@react-native-community\cli\build\index.js:164:9)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

I’m running on Windows 10 x64 and node version is 12.8.0

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 19
  • Comments: 54 (16 by maintainers)

Commits related to this issue

Most upvoted comments

I’m on same status Node Version: v12.12.0 react-native --version 3.3.0-alpha.6

On Windows, npx command is “npx.cmd” and windows terminal can omit extensions for executables(i.e. bat,cmd,exe ) .so we can run npx by “npx” in the terminal, but it’s looks only in terminal (except for *.exe) I modified native_modules.gradle L.153 “npx --quiet react-native config” to “npx.cmd --quiet react-native config” ,then I could run run-android but it’s not smart and not portable.

CLI is a direct dependency of react-native and we want it to keep it this way. You can use yarn resolutions in package.json to pin to previous version:

"resolutions": {
  "@react-native-community/cli": "3.0.0-alpha.2",
  "@react-native-community/cli-platform-android": "3.0.0-alpha.2",
  "@react-native-community/cli-platform-ios": "3.0.0-alpha.2",
  "@react-native-community/cli-tools": "2.8.3"
}

NVM sets up it’s environment variables in the .bashrc file, which only sets the environment variables for Bash. These seem to not be accessible to terminal commands ran from Gradle. The solution is to move the NVM specific code from the .bashrc file in the home directory to the .profile file, also in the home directory. This NVM specific code looks like this:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

Restart your computer after, and try to open Android Studio again.

I had same issue as @Vednus. I ended up adding the react-native-cli versions as resolutions in the package.json as described above.

    "resolutions": {
        "@react-native-community/cli": "2.9.0",
        "@react-native-community/cli-platform-android": "2.9.0",
        "@react-native-community/cli-platform-ios": "2.9.0",
        "@react-native-community/cli-tools": "2.8.3"
    },

Had the same issue on linux. Just installed npx to machine globally and everything worked 🎉 sudo npm install -g npx

I was running into this error: Unexpected empty result of running 'npx --quiet --no-install react-native config' command from 'null' directory. when building in appcenter (it built fine locally) and ended up having to downgrade cli-platform-android to ^2.9.0 based on this comment: https://github.com/facebook/react-native/issues/26929#issuecomment-555014695 In order to get it to work. I’m dealing with a monorepo and think it was a pathing issue, although it built fine in appcenter for iOS.

The problem here is that $PATH variable isn’t inherited through getRuntime().exec. I do not know exactly why, but seams to be related to the NVM.

It worked for me after I manually installed cli-platform-android

thanks for Release new version. It looks like work well!

Released alpha.7 with a fix for that. Please update the @react-native-community/cli to the latest version and let us know 😃

In my case npx was not found I think that this is because I installed node using NVM

Maybe the $PATH variable isn’t inherited through Java Runtime correctly. The $PATH inherited is one statitically defined. If you use NVM that defines $PATH dinamically including node according version, it is not propagated to Java Runtime which is where commands are executed. Install npx globally solve the problem once It put the npx in $PATH statically. Here despite having NVM I put the node on $PATH statically, but theses solutions seems workaround.

Docs are not updated yet. Don’t install anything globally, uninstall global react-native, react-native-cli or @react-native-community/cli if you have any

I fount areplaced the file cli-platform-android/native_modules.gradle for the previous version one (2.9)

@david-laurentino please provide a repro that we can download. Otherwise it’s not actionable.

It occurs with any project created with react native version 0.62.1 and typescript, for example: npx react-native init TestApp --version react-native@0.61.2 --template react-native-template-typescript on Ubuntu 18.04LTS Omitting the version option, everything works as expected, but this way the project is create with RN version 0.60.5 and CLI version 2.9.0.

I’ve sent a PR with a possible fix: https://github.com/react-native-community/cli/pull/801 that @zrelyydereva suggested (thanks!). Can you make sure it works for you?

I’m also having this issue on a fresh created project on Windows.

yarn react-native --version output: 3.0.0-alpha.6 node version: 12.10.0 yarn version: 1.19.0

I see Cannot run program "npx" in the error message. Can you verify npx works for you as a standalone command? It should ship with npm by default.

Yes it does. I created the project using this command

npx react-native init MyApp --template react-native-template-typescript

And I noticed that platform-android was updated recently. Before this update everything worked fine.