Description
My yarn installation went wrong for some reason and executable permission was missing from rn-cli. Now it's fair that build failed, but it was failing in a cryptic way. Especially since the command mentioned in error message - react-native config was working fine.
Execution failed for task ':app:generateAutolinkingPackageList'.
> RNGP - Autolinking: Could not find project.android.packageName in react-native config output! Could not autolink packages without this field.
What's wasn't working and was invoked by gradle is npx @react-native-community/cli config
npx @react-native-community/cli config
sh: /private/tmp/TestAL/rn-075-autolink/ReproducerApp/node_modules/.bin/rnc-cli: Permission denied
Also the failure of the commend itself is not printed to grade and an empty autolink.json got created
ls -al build/generated/autolinking/autolinking.json
-rw-r--r--@ 1 boga wheel 0 Jul 6 13:45 build/generated/autolinking/autolinking.json
Code should be logging failure of command and remove output file in such case.
|
if (lockFilesChanged || outputFile.exists().not() || outputFile.length() != 0L) { |
|
ProcessBuilder(command) |
|
.directory(workingDirectory) |
|
.redirectOutput(ProcessBuilder.Redirect.to(outputFile)) |
|
.redirectError(ProcessBuilder.Redirect.INHERIT) |
|
.start() |
|
.waitFor(5, TimeUnit.MINUTES) |
|
} |
Something simple could be added to then end:
val process = ProcessBuilder(command)
.directory(workingDirectory)
.redirectOutput(ProcessBuilder.Redirect.to(outputFile))
.redirectError(ProcessBuilder.Redirect.INHERIT)
.start()
val finished = process
.waitFor(5, TimeUnit.MINUTES)
if (!finished) {
Logging.getLogger("ReactSettingsExtension").error("Process ${command} exited with error code ${process.exitValue()}")
throw GradleException("Process ${command} timed out")
} else if (process.exitValue() != 0) {
outputFile.delete()
Logging.getLogger("ReactSettingsExtension").error("Process ${command} exited with error code ${process.exitValue()}")
throw GradleException("Process ${command} exited with error code ${process.exitValue()}")
}
Steps to reproduce
git clone https://github.com/mfazekas/rn-075-autolink
cd ReproducerApp
yarn install
chmod -x node_modules/.bin/rnc-cli
cd android
./gradlew assembleDebug
React Native Version
0.75.0-rc.3
Affected Platforms
Runtime - Android, Build - MacOS
Areas
Codegen
Output of npx react-native info
info Fetching system and libraries information...
System:
OS: macOS 14.5
CPU: (12) arm64 Apple M2 Max
Memory: 66.97 MB / 32.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 18.20.2
path: ~/.nvm/versions/node/v18.20.2/bin/node
Yarn:
version: 3.6.4
path: ~/.nvm/versions/node/v18.20.2/bin/yarn
npm:
version: 10.5.0
path: ~/.nvm/versions/node/v18.20.2/bin/npm
Watchman:
version: 2024.05.06.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.14.2
path: /Users/boga/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 23.5
- iOS 17.5
- macOS 14.5
- tvOS 17.5
- visionOS 1.2
- watchOS 10.5
Android SDK: Not Found
IDEs:
Android Studio: 2024.1 AI-241.15989.150.2411.11948838
Xcode:
version: 15.4/15F31d
path: /usr/bin/xcodebuild
Languages:
Java:
version: 20.0.1
path: /usr/bin/javac
Ruby:
version: 2.7.8
path: /Users/boga/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli": Not Found
react: Not Found
react-native: Not Found
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: Not found
newArchEnabled: false
### Stacktrace or Logs
```text
Execution failed for task ':app:generateAutolinkingPackageList'.
> RNGP - Autolinking: Could not find project.android.packageName in react-native config output! Could not autolink packages without this field.
android % npx react-native config
{
"root": "/private/tmp/TestAL/rn-075-autolink/ReproducerApp",
"reactNativePath": "/private/tmp/TestAL/rn-075-autolink/ReproducerApp/node_modules/react-native",
"reactNativeVersion": "0.75",
...
}
Reproducer
https://github.com/mfazekas/rn-075-autolink
Screenshots and Videos
No response
Description
My yarn installation went wrong for some reason and executable permission was missing from rn-cli. Now it's fair that build failed, but it was failing in a cryptic way. Especially since the command mentioned in error message -
react-native configwas working fine.What's wasn't working and was invoked by gradle is
npx @react-native-community/cli configAlso the failure of the commend itself is not printed to grade and an empty autolink.json got created
Code should be logging failure of command and remove output file in such case.
react-native/packages/gradle-plugin/settings-plugin/src/main/kotlin/com/facebook/react/ReactSettingsExtension.kt
Lines 49 to 56 in 8c8c77b
Something simple could be added to then end:
Steps to reproduce
React Native Version
0.75.0-rc.3
Affected Platforms
Runtime - Android, Build - MacOS
Areas
Codegen
Output of
npx react-native infoandroid % npx react-native config
{
"root": "/private/tmp/TestAL/rn-075-autolink/ReproducerApp",
"reactNativePath": "/private/tmp/TestAL/rn-075-autolink/ReproducerApp/node_modules/react-native",
"reactNativeVersion": "0.75",
...
}
Reproducer
https://github.com/mfazekas/rn-075-autolink
Screenshots and Videos
No response