Doт't build app after adding iap for Android react-native-cli
Please use the Discussion board if you want to get some help. Please use issues to report bugs.
Description
Created new project https://github.com/RomanKopyl/IapApp . For Android this dont work. It has only one lib [react-native-iap]. The project stops building after adding this library. What am I missing or doing wrong?
Expected Behavior
Screenshots
Environment:
"dependencies": { "react": "18.3.1", "react-native": "0.76.6", "react-native-iap": "^12.16.0" },
- Android: emulator and device:
To Reproduce Steps to reproduce the behavior:
Android Studio returns an error:
..... FAILURE: Build completed with 3 failures.
1: Task failed with an exception.
- What went wrong: Execution failed for task ':react-native-iap:generateCodegenSchemaFromJavaScript'.
A problem occurred starting process 'command 'node''
- 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.tasks.TaskExecutionException: Execution failed for task ':react-native-iap:generateCodegenSchemaFromJavaScript'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:130) at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:293) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:128) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) 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:166) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314) at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48) Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'node'' at org.gradle.process.internal.DefaultExecHandle.execExceptionFor(DefaultExecHandle.java:241) at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:218) at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:396) at org.gradle.process.internal.ExecHandleRunner.lambda$run$3(ExecHandleRunner.java:102) at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85) at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:101) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48) Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'node' at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27) at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36) at org.gradle.process.internal.ExecHandleRunner.startProcess(ExecHandleRunner.java:122) at org.gradle.process.internal.ExecHandleRunner.lambda$run$0(ExecHandleRunner.java:80) at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85) at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:79) ... 2 more Caused by: java.io.IOException: Cannot run program "node" (in directory "/Users/roman/Documents/projects/IapApp/node_modules/react-native-iap/android"): error=2, No such file or directory at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25) ... 7 more Caused by: java.io.IOException: error=2, No such file or directory ... 8 more
==============================================================================
2: Task failed with an exception.
- What went wrong: Execution failed for task ':app:createBundleGooglePlayDebugJsAndAssets'.
A problem occurred starting process 'command 'node''
- 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.tasks.TaskExecutionException: Execution failed for task ':app:createBundleGooglePlayDebugJsAndAssets'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:130)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:293)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:128)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
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:166)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)
at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'node''
at org.gradle.process.internal.DefaultExecHandle.execExceptionFor(DefaultExecHandle.java:241)
at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:218)
at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:396)
at org.gradle.process.internal.ExecHandleRunner.lambda$run$3(ExecHandleRunner.java:102)
at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:101)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'node'
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)
at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)
at org.gradle.process.internal.ExecHandleRunner.startProcess(ExecHandleRunner.java:122)
at org.gradle.process.internal.ExecHandleRunner.lambda$run$0(ExecHandleRunner.java:80)
at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:79)
... 5 more
Caused by: java.io.IOException: Cannot run program "node" (in directory "/Users/roman/Documents/projects/IapApp"): error=2, No such file or directory
at java.base/java.lang.ProcessBuilder.start(Unknown Source)
at java.base/java.lang.ProcessBuilder.start(Unknown Source)
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
... 10 more
Caused by: java.io.IOException: error=2, No such file or directory
at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
at java.base/java.lang.ProcessImpl.
(Unknown Source) at java.base/java.lang.ProcessImpl.start(Unknown Source) ... 13 more
==============================================================================
3: Task failed with an exception.
- What went wrong: Execution failed for task ':app:configureCMakeDebug[x86_64]'.
[CXX1429] error when building with cmake using /Users/roman/Documents/projects/IapApp/node_modules/react-native/ReactAndroid/cmake-utils/default-app-setup/CMakeLists.txt: -- Configuring incomplete, errors occurred! See also "/Users/roman/Documents/projects/IapApp/android/app/.cxx/Debug/d6317402/x86_64/CMakeFiles/CMakeOutput.log".
C++ build system [configure] failed while executing:
/Users/roman/Library/Android/sdk/cmake/3.22.1/bin/cmake
-H/Users/roman/Documents/projects/IapApp/node_modules/react-native/ReactAndroid/cmake-utils/default-app-setup
-DCMAKE_SYSTEM_NAME=Android
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
-DCMAKE_SYSTEM_VERSION=24
-DANDROID_PLATFORM=android-24
-DANDROID_ABI=x86_64
-DCMAKE_ANDROID_ARCH_ABI=x86_64
-DANDROID_NDK=/Users/roman/Library/Android/sdk/ndk/26.1.10909125
-DCMAKE_ANDROID_NDK=/Users/roman/Library/Android/sdk/ndk/26.1.10909125
-DCMAKE_TOOLCHAIN_FILE=/Users/roman/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake
-DCMAKE_MAKE_PROGRAM=/Users/roman/Library/Android/sdk/cmake/3.22.1/bin/ninja
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/roman/Documents/projects/IapApp/android/app/build/intermediates/cxx/Debug/d6317402/obj/x86_64
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/roman/Documents/projects/IapApp/android/app/build/intermediates/cxx/Debug/d6317402/obj/x86_64
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_FIND_ROOT_PATH=/Users/roman/Documents/projects/IapApp/android/app/.cxx/Debug/d6317402/prefab/x86_64/prefab
-B/Users/roman/Documents/projects/IapApp/android/app/.cxx/Debug/d6317402/x86_64
-GNinja
-DPROJECT_BUILD_DIR=/Users/roman/Documents/projects/IapApp/android/app/build
-DREACT_ANDROID_DIR=/Users/roman/Documents/projects/IapApp/node_modules/react-native/ReactAndroid
-DANDROID_STL=c++_shared
-DANDROID_USE_LEGACY_TOOLCHAIN_FILE=ON
from /Users/roman/Documents/projects/IapApp/android/app
CMake Error at /Users/roman/Documents/projects/IapApp/android/app/build/generated/autolinking/src/main/jni/Android-autolinking.cmake:9 (add_subdirectory):
add_subdirectory given source
"/Users/roman/Documents/projects/IapApp/node_modules/react-native-iap/android/build/generated/source/codegen/jni/"
which is not an existing directory.
Call Stack (most recent call first):
/Users/roman/Documents/projects/IapApp/node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake:100 (include)
CMakeLists.txt:31 (include)
CMake Error at /Users/roman/Documents/projects/IapApp/node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake:103 (target_link_libraries): Cannot specify link libraries for target "react_codegen_RNIap" which is not built by this project. Call Stack (most recent call first): CMakeLists.txt:31 (include) : com.android.ide.common.process.ProcessException: -- Configuring incomplete, errors occurred! See also "/Users/roman/Documents/projects/IapApp/android/app/.cxx/Debug/d6317402/x86_64/CMakeFiles/CMakeOutput.log".
C++ build system [configure] failed while executing:
/Users/roman/Library/Android/sdk/cmake/3.22.1/bin/cmake
-H/Users/roman/Documents/projects/IapApp/node_modules/react-native/ReactAndroid/cmake-utils/default-app-setup
-DCMAKE_SYSTEM_NAME=Android
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
-DCMAKE_SYSTEM_VERSION=24
-DANDROID_PLATFORM=android-24
-DANDROID_ABI=x86_64
-DCMAKE_ANDROID_ARCH_ABI=x86_64
-DANDROID_NDK=/Users/roman/Library/Android/sdk/ndk/26.1.10909125
-DCMAKE_ANDROID_NDK=/Users/roman/Library/Android/sdk/ndk/26.1.10909125
-DCMAKE_TOOLCHAIN_FILE=/Users/roman/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake
-DCMAKE_MAKE_PROGRAM=/Users/roman/Library/Android/sdk/cmake/3.22.1/bin/ninja
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/roman/Documents/projects/IapApp/android/app/build/intermediates/cxx/Debug/d6317402/obj/x86_64
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/roman/Documents/projects/IapApp/android/app/build/intermediates/cxx/Debug/d6317402/obj/x86_64
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_FIND_ROOT_PATH=/Users/roman/Documents/projects/IapApp/android/app/.cxx/Debug/d6317402/prefab/x86_64/prefab
-B/Users/roman/Documents/projects/IapApp/android/app/.cxx/Debug/d6317402/x86_64
-GNinja
-DPROJECT_BUILD_DIR=/Users/roman/Documents/projects/IapApp/android/app/build
-DREACT_ANDROID_DIR=/Users/roman/Documents/projects/IapApp/node_modules/react-native/ReactAndroid
-DANDROID_STL=c++_shared
-DANDROID_USE_LEGACY_TOOLCHAIN_FILE=ON
from /Users/roman/Documents/projects/IapApp/android/app
CMake Error at /Users/roman/Documents/projects/IapApp/android/app/build/generated/autolinking/src/main/jni/Android-autolinking.cmake:9 (add_subdirectory):
add_subdirectory given source
"/Users/roman/Documents/projects/IapApp/node_modules/react-native-iap/android/build/generated/source/codegen/jni/"
which is not an existing directory.
Call Stack (most recent call first):
/Users/roman/Documents/projects/IapApp/node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake:100 (include)
CMakeLists.txt:31 (include)
CMake Error at /Users/roman/Documents/projects/IapApp/node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake:103 (target_link_libraries): Cannot specify link libraries for target "react_codegen_RNIap" which is not built by this project. Call Stack (most recent call first): CMakeLists.txt:31 (include) at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.execute(ExecuteProcess.kt:288) at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt$executeProcess$1.invoke(ExecuteProcess.kt:108) at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt$executeProcess$1.invoke(ExecuteProcess.kt:106)
........
==============================================================================
BUILD FAILED in 11s
[Optional] Additional Context
Looks like this is related to #2919
@RomanKopyl the significant log part is: Cannot run program "node" (in directory "/Users/roman/Documents/projects/IapApp"): error=2, No such file or directory
This error is not specific react-native-iap, rather to any library which uses node in it's gradle script.
Make sure you have node installed and exist in your path.
which node
Also,if you're building via Android Studio on Macos, the path environment may not be available to it .
you should open studio from a shell with proper env setup with:
open -a "Android Studio".
you could also edit your build.gradle under react section add:
nodeExecutableAndArgs = ["/usr/local/bin/node"], with your node path. but this is less recommended.
I’m closing all issues reported in versions below 14, as the library now supports the new architecture with NitroModules and has been completely revamped.