react-native-iap icon indicating copy to clipboard operation
react-native-iap copied to clipboard

Doт't build app after adding iap for Android react-native-cli

Open RomanKopyl opened this issue 1 year ago • 2 comments

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

RomanKopyl avatar Jan 21 '25 14:01 RomanKopyl

Looks like this is related to #2919

hyochan avatar Mar 13 '25 18:03 hyochan

@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.

amitpdev avatar May 17 '25 16:05 amitpdev

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.

hyochan avatar Sep 30 '25 18:09 hyochan