任务':react-native-gesture-handler:compileDebugJavaWithJavac'的执行失败

use*_*363 4 react-native react-native-android

我通过gradle.propertiesandroidRN 0.59项目的下面添加2行来解决与AndroidX相关的不兼容问题。

android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)

现在与run-android相关的另一个错误react-native-gesture-handler。然后,我yarn remove目前react-native-gesture-handler1.2.0并将其添加回。新版本是1.3.0。这是错误:

> Task :react-native-gesture-handler:compileDebugJavaWithJavac
C:\D\code\js\emps_app\node_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:\D\code\js\emps_app\node_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.SynchronizedPool<RNGestureHandlerEvent> EVENTS_POOL =
                            ^
C:\D\code\js\emps_app\node_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:\D\code\js\emps_app\node_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.SynchronizedPool<RNGestureHandlerStateChangeEvent> EVENTS_POOL =
                            ^
C:\D\code\js\emps_app\node_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:\D\code\js\emps_app\node_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:\D\code\js\emps_app\node_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 errors

> Task :react-native-gesture-handler:compileDebugJavaWithJavac FAILED

FAILURE: Build failed with an exception.
Run Code Online (Sandbox Code Playgroud)

该错误与缺少6个软件包有关,我想它仍然与Androidx有关。但是我不知道如何解决它。有一个问题帖子(针对RN-gesture-handler)建议降级1.0.5为修复版本,但我不想使用这样的旧版本。

Har*_*hal 14

它会导致此错误RN 0.60。您可以按照以下步骤解决此问题,

npm i jetifier
npx jetify
Run Code Online (Sandbox Code Playgroud)

为我固定它RN 0.60

祝你有美好的一天。


小智 0

根据我的 openion,此错误是由于 npm 库的安装和链接不完整而发生的。请遵循以下步骤:- 首先在项目中运行此命令(npm install --save react-native-gesture-handler)。然后通过运行此命令来链接该库(react-native链接react-native-gesture-handler)。然后在设备或模拟器上运行您的项目,它就会工作。如果它不起作用,则从下面给出的链接手动安装并链接该库。 https://www.npmjs.com/package/react-native-gesture-handler