software-mansion / react-native-gesture-handler

Declarative API exposing platform native touch and gesture system to React Native.
https://docs.swmansion.com/react-native-gesture-handler/
MIT License
5.85k stars 954 forks source link

Task :react-native-gesture-handler:compileDebugKotlin FAILED #2427

Open inmess opened 1 year ago

inmess commented 1 year ago

Description

image image

Dependencies:

  "dependencies": {
    "expo": "~47.0.12",
    "expo-status-bar": "~1.4.2",
    "react": "18.1.0",
    "react-native": "0.70.5",
    "react-native-gesture-handler": "^2.9.0",
    "react-native-reanimated": "^2.14.4",
    "expo-splash-screen": "~0.17.5"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0"
  },

run in MacOS, m1

Steps to reproduce

What I've done:

  1. create a new project and run expo prebuild

  2. Install those dependencies(RNGH, react-native-reanimated) with yarn add

  3. Enable new arch by adding "jsEngine": "hermes" to app.json,

  4. In gradle.properties I changed: newArchEnabled=true and expo.jsEngine=hermes

  5. In android/app/build.gradle: def enableHermes = project.ext.react.get("enableHermes", true);

  6. Then I run cd android/ && ./gradlew clean

  7. While I run npx expo run:android, errors occurred as in the screenshots.

Snack or a link to a repository

https://github.com/inmess/rngh-bug-repo.git

Gesture Handler version

2.9.0

React Native version

0.70.5

Platforms

Android

JavaScript runtime

Hermes

Workflow

Expo bare workflow

Architecture

Fabric (New Architecture)

Build type

Debug mode

Device

Real device

Device model

No response

Acknowledgements

Yes

github-actions[bot] commented 1 year ago

Hey! 👋

It looks like you've omitted a few important sections from the issue template.

Please complete Steps to reproduce section.

inmess commented 1 year ago

More Information of error

FAILURE: Build completed with 3 failures.

1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':react-native-gesture-handler:configureCMakeDebug[arm64-v8a]'.
> [CXX1405] error when building with cmake using /Volumes/T7/Documents/test-app/node_modules/react-native-gesture-handler/android/src/main/jni/CMakeLists.txt: Build command failed.
  Error while executing process /Users/gabrielcheng/Library/Android/sdk/cmake/3.18.1/bin/cmake with arguments {-H/Volumes/T7/Documents/test-app/node_modules/react-native-gesture-handler/android/src/main/jni -DCMAKE_SYSTEM_NAME=Android -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_SYSTEM_VERSION=21 -DANDROID_PLATFORM=android-21 -DANDROID_ABI=arm64-v8a -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a -DANDROID_NDK=/Users/gabrielcheng/Library/Android/sdk/ndk/21.4.7075529 -DCMAKE_ANDROID_NDK=/Users/gabrielcheng/Library/Android/sdk/ndk/21.4.7075529 -DCMAKE_TOOLCHAIN_FILE=/Users/gabrielcheng/Library/Android/sdk/ndk/21.4.7075529/build/cmake/android.toolchain.cmake -DCMAKE_MAKE_PROGRAM=/Users/gabrielcheng/Library/Android/sdk/cmake/3.18.1/bin/ninja -DCMAKE_CXX_FLAGS=-O2 -frtti -fexceptions -Wall -Werror -std=c++17 -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Volumes/T7/Documents/test-app/node_modules/react-native-gesture-handler/android/build/intermediates/cxx/Debug/1s575c3k/obj/arm64-v8a -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Volumes/T7/Documents/test-app/node_modules/react-native-gesture-handler/android/build/intermediates/cxx/Debug/1s575c3k/obj/arm64-v8a -DCMAKE_BUILD_TYPE=Debug -B/Volumes/T7/Documents/test-app/node_modules/react-native-gesture-handler/android/.cxx/Debug/1s575c3k/arm64-v8a -GNinja -DAPP_BUILD_DIR=/Volumes/T7/Documents/test-app/android/app/build -DREACT_NATIVE_DIR=/Volumes/T7/Documents/test-app/node_modules/react-native -DANDROID_STL=c++_shared}
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: /Users/gabrielcheng/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: /Users/gabrielcheng/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Configuring incomplete, errors occurred!
  See also "/Volumes/T7/Documents/test-app/node_modules/react-native-gesture-handler/android/.cxx/Debug/1s575c3k/arm64-v8a/CMakeFiles/CMakeOutput.log".

  CMake Error at CMakeLists.txt:9 (include):
    include could not find load file:

      /Volumes/T7/Documents/test-app/node_modules/react-native/ReactAndroid/cmake-utils/folly-flags.cmake

  CMake Error at CMakeLists.txt:17 (find_package):
    Could not find a package configuration file provided by "ReactAndroid" with
    any of the following names:

      ReactAndroidConfig.cmake
      reactandroid-config.cmake

    Add the installation prefix of "ReactAndroid" to CMAKE_PREFIX_PATH or set
    "ReactAndroid_DIR" to a directory containing one of the above files.  If
    "ReactAndroid" provides a separate development package or SDK, be sure it
    has been installed.
student513 commented 1 year ago

same issue

devgunatwork commented 1 year ago

same issue with RN version 0.71.4

cisiwen commented 1 year ago

Similar issue but slight different

'boost/mpl/count.hpp' file not found

`FAILURE: Build completed with 2 failures.

1: Task failed with an exception.

2: Task failed with an exception.

cisiwen commented 1 year ago

Just download the gesture handler git and build the FabricExample work fine first the problem happened when newArchEnabled=true if i change from react native version 0.71.4 to 0.71.0 my project compile properly

NSShentu commented 1 year ago

Same issue here with RN 0.71.3 and RNGH 2.9.0 .gradle/caches/transforms-3/3b4066e6a8ae874968e4742fedafe30a/transformed/jetified-react-android-0.71.3-debug/prefab/modules/react_nativemodule_core/include/folly/small_vector.h:35:10: fatal error: 'boost/mpl/count.hpp' file not found

AliMSbaee commented 1 year ago

Same issue: fatal error: 'boost/mpl/count.hpp' file not found RN@0.71.0 RNGH@2.9.0

achorein commented 1 year ago

same problem here (expo 48, RN 0.71.4, newArch, reanimated3), maybe related to something like https://github.com/expo/expo/issues/20679

natehurley commented 1 year ago

Same issue: fatal error: 'boost/mpl/count.hpp' file not found

Versions: React Native @ 0.71.5 (Nothing changes when I downgraded React Native to 0.71.0) RN Gesture Handler @ 2.9.0 Reanimated @ 3.0.2

Enviroment: MacBook Pro M1 Pro @ 13.2.1

Would love to hear any potential solutions anyone has come up with... I can't seem to find any info regarding this issue specifically anywhere online, sadly.

Makar8000 commented 1 year ago

Getting the same issue with the following versions: React Native: 0.71.5 react-native-gesture-handler: 2.9.0

The error: Execution failed for task ':react-native-gesture-handler:configureCMakeRelWithDebInfo[arm64-v8a]'.

beeboopx commented 1 year ago

Same Android build issue: fatal error: 'boost/mpl/count.hpp' file not found

RN: 0.71.3 w/ new architecture react-native-gesture-handler: 2.9.0 react-native-reanimated: 3.0.2 Gradle Wrapper: 7.5.1 Android Gradle Plugin: 7.4.1

Update:

Upgraded RN to 0.71.6 Downgraded Android Gradle Plugin: 7.3.1 (downgraded due to experiencing another issue with AGP 7.4.1 https://issuetracker.google.com/issues/232060576)

Not sure if it was the AGP downgrade or RN upgrade but now the react-native-gesture-handler build error is gone.

Bort-777 commented 1 year ago

Downgraded Android Gradle Plugin: 7.3.1 (downgraded due to experiencing another issue with AGP 7.4.1 https://issuetracker.google.com/issues/232060576)

classpath("com.android.tools.build:gradle:7.3.1") looks resolve issue, but idk reasons how

gradle 7.4.1 as suggested for expo modules config cause the issue for me

kaushal9808 commented 1 year ago

Same issues occur to me as well after enableNewArch=true. for RN: 0.71.6 RNGH: 2.9.0

.gradle/caches/transforms-3/1d77430c69ac7afa83726261db6d41b1/transformed/jetified-react-android-0.71.6-release/prefab/modules/react_nativemodule_core/include/folly/small_vector.h:35:10: fatal error: 'boost/mpl/count.hpp' file not found

include <boost/mpl/count.hpp>

cycweeds commented 1 year ago

Downgraded Android Gradle Plugin: 7.3.1 (downgraded due to experiencing another issue with AGP 7.4.1 https://issuetracker.google.com/issues/232060576)

classpath("com.android.tools.build:gradle:7.3.1") looks resolve issue, but idk reasons how

gradle 7.4.1 as suggested for expo modules config cause the issue for me

it worked for me. update file build.gradle. and set gradle version to 7.3.1 ---classpath("com.android.tools.build:gradle:7.3.1")

Bort-777 commented 1 year ago

classpath("com.android.tools.build:gradle:7.3.1") looks resolve issue, but idk reasons how

An alternative workaround to the problems has been found: upgrade NDK: ndkVersion = "25.0.8775105"

AlanSl commented 1 year ago

On React Native 0.72 release candidates, this seems to happen out of the box now with Fabric (probably because 0.72 stopped pinning the Android Gradle Plugin (AGP) to 7.3.1). Simple way to replicate the error:

In React Native 0.72, (or if you need AGP 7.4.2 for some other reason e.g. requirement of some native module), the best workaround is for now probably updating NDK as @Bort-777 suggests (ndkVersion = "25.0.8775105" in android/build.gradle replacing the existing ndk version). In React Native 0.71, I found classpath("com.android.tools.build:gradle:7.3.1") seemed more effective. May vary by app.

emclab commented 11 months ago

same issue on RN 0.70.1 and RN gesture handler 2.10.1, MacOS 13.3. Any solution?

Miyo-Excellent commented 11 months ago

same issue on RN 0.72.0-rc3 and RN gesture handler 2.10.1, M1 MacOS 13.3. Any solution?

Dverybest commented 11 months ago

updating my android build.gradle buildscript to

buildscript {
    ext {
        buildToolsVersion = '33.0.0'
        minSdkVersion = 21
        compileSdkVersion = 33
        targetSdkVersion = 33
  }
....
}

as stated here https://stackoverflow.com/a/76409767/8523267 worked for me

thanhloc-17 commented 11 months ago

same issue with

SahilJarial commented 10 months ago

same issue .

MihailsKostjuks commented 10 months ago

Guys, just take this char ^ away. End result: "react-native-gesture-handler": "2.9.0"

briandnk commented 10 months ago

Guys, just take this char ^ away. End result: "react-native-gesture-handler": "2.9.0"

thank, it worked for me. Can you explain why?

mdarifulislamroni521 commented 9 months ago

android > build.gradle and replace by ndkVersion = "25.2.9519653"

mahshid22 commented 9 months ago

hi i did all this steps mentioned above: 1- buildscript { ext { buildToolsVersion = '33.0.0' minSdkVersion = 21 compileSdkVersion = 33 targetSdkVersion = 33 } .... } 2- com.android.tools.build:gradle:7.3.1 3- android > build.gradle and replace by ndkVersion = "25.2.9519653" and the errors gone thanks to others i hope this helped

nubwang commented 9 months ago

如果你绝望了,上面的方法都不行的话,你最后试试把android > gradle.properties下的newArchEnabled改成false,就离谱,我试了几天终于发现这个玩意老坑了,原因是 使用此属性可以启用对新体系结构的支持。这将允许您在应用程序中使用TurboModules和Fabric渲染。如果您想编写自定义TurboModule/Fabric组件或使用提供这些组件的库,则应启用此标志。

Yandamuri commented 8 months ago

Guys, just take this char ^ away. End result: "react-native-gesture-handler": "2.9.0"

what's your android targetsdk version?

CarlosDanielDev commented 8 months ago

While facing compilation issues in the React Native project, I identified that the error was related to the NDK and SDK configurations within Gradle. I resolved the issue by adjusting the versions in the Gradle configuration file as follows:

ndkVersion = "25.0.8775105"

buildscript {
  ext {
    targetSdkVersion  '33.0.0'
    buildToolsVersion = 33
    compileSdkVersion = 33
  }
}

This change fixed the compilation errors related to :react-native-gesture-handler:compileDebugKotlin and java.lang.StackOverflowError, allowing the build to complete successfully. This solution may be helpful for other developers facing similar issues with these specific versions of the NDK and SDK.

vnknt commented 8 months ago

Adding following property to gradle.properties file is worked for me.

kotlin.jvm.target.validation.mode=error
berkaygurcan commented 7 months ago

same issue and solutions doesnt work !

kundakcii commented 7 months ago

same issue and solutions doesnt work !

can you try add this line at android/build.gradle file

dependencies {
     ...
    classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0")
}

do not forget to clean gradlew.

ahmetcangurel commented 5 months ago

same issue and solutions doesnt work !

can you try add this line at android/build.gradle file

dependencies {
     ...
    classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0")
}

if this not work. At the same time change ndk version to 25.0.8775105 and do not forget to clean gradlew.

it's worked for me, thanks

aparnagude396 commented 1 month ago

Hi i got the same error I have upgraded react native version to 0.73.6. After that I'm getting this error can anyone help me this issue to be resolved.

Excustic commented 1 month ago

I managed to fix this problem by going to the gradle.properties of the library and changing this line

RNGH_kotlinVersion=1.6.21

to match my project's kotlin version which was 1.6.0