I'm trying to install react-navigation package to my project. I did all instructions on here and getting error while compiling.
react-navigation && gesture-handler works on 0.59.10 perfectly but had problems on 0.60.0
I create a dummy project to test the package and getting these errors.
package.json :
error output:
react-native run-android
info JS server already running.
info Installing the app...Task :react-native-gesture-handler:compileDebugJavaWithJavac
Task :react-native-gesture-handler:compileDebugJavaWithJavac FAILED
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings
20 actionable tasks: 20 executed
C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerEvent.java:3: error: package android.support.v4.util does not exist
import android.support.v4.util.Pools;
^
C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerEvent.java:19: error: package Pools does not exist
private static final Pools.SynchronizedPoolEVENTS_POOL =
^
C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerStateChangeEvent.java:3: error: package android.support.v4.util does not exist
import android.support.v4.util.Pools;
^
C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerStateChangeEvent.java:19: error: package Pools does not exist
private static final Pools.SynchronizedPoolEVENTS_POOL =
^
C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerEvent.java:20: error: package Pools does not exist
new Pools.SynchronizedPool<>(TOUCH_EVENTS_POOL_SIZE);
^
C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerStateChangeEvent.java:20: error: package Pools does not exist
new Pools.SynchronizedPool<>(TOUCH_EVENTS_POOL_SIZE);
^
Note: C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerButtonViewManager.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
6 errorsFAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':react-native-gesture-handler:compileDebugJavaWithJavac'.Compilation failed; see the compiler error output for details.
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
BU锟絃D FAILED in 1m 12s
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 --verbose flag for more details.
Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081
C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerEvent.java:3: error: package android.support.v4.util does not exist
import android.support.v4.util.Pools;
^
C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerEvent.java:19: error: package Pools does not exist
private static final Pools.SynchronizedPoolEVENTS_POOL =
^
C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerStateChangeEvent.java:3: error: package android.support.v4.util does not exist
import android.support.v4.util.Pools;
^
C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerStateChangeEvent.java:19: error: package Pools does not exist
private static final Pools.SynchronizedPoolEVENTS_POOL =
^
C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerEvent.java:20: error: package Pools does not exist
new Pools.SynchronizedPool<>(TOUCH_EVENTS_POOL_SIZE);
^
C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerStateChangeEvent.java:20: error: package Pools does not exist
new Pools.SynchronizedPool<>(TOUCH_EVENTS_POOL_SIZE);
^
Note: C:\Users\ezran\Desktop\SADELABS\dummyProjectnode_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerButtonViewManager.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
6 errorsFAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':react-native-gesture-handler:compileDebugJavaWithJavac'.Compilation failed; see the compiler error output for details.
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
BU锟絃D FAILED in 1m 12s
at checkExecSyncError (child_process.js:616:11) at execFileSync (child_process.js:634:13) at runOnAllDevices (C:\Users\ezran\Desktop\SADELABS\dummyProject\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\runOnAllDevices.js:75:39) at buildAndRun (C:\Users\ezran\Desktop\SADELABS\dummyProject\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\index.js:137:41) at then.result (C:\Users\ezran\Desktop\SADELABS\dummyProject\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\index.js:103:12) at process._tickCallback (internal/process/next_tick.js:68:7)
Thanks
This is happening just because your project support Androidx and that library don鈥檛.
So for androidx support it requires androidx.core.util.Pools instead of android.support.v4.util.Pools.
This can be changed manually in modules file but when you do npm install it will be changed to default.
So we need to change it at build time. To resolve this type issue place below code in app-level Gradle file.
preBuild.doFirst {
ant.replaceregexp(match:'android.support.v4.util.Pools;', replace:'androidx.core.util.Pools;', flags:'g', byline:true) {
fileset(dir: '../../node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/', includes: '*.java')
}
** If there are more issue in other modules, kindly do the same as above (Replace androidx support import statement)
You can see the matching libraries for androidx https://developer.android.com/jetpack/androidx/migrate
This happens because RNGH is not yet migrated to AndroidX.
We advice to run jetifier on "postinstall" step until then, which will unblock you
cc @osdnk feel free to close this.
This worked for me!
https://github.com/facebook/react-native/issues/25483#issuecomment-508446776
This worked for me!
facebook/react-native#25483 (comment)
work for me!
Resolved.
Most helpful comment
This worked for me!
https://github.com/facebook/react-native/issues/25483#issuecomment-508446776