react-native - 任务“:react-native-gesture-handler:compileDebugJavaWithJavac”执行失败
问题描述
我正在通过在我的 RN 0.59 项目gradle.properties
下添加 2 行来解决与 AndroidX 相关的不兼容问题。android
android.useAndroidX=true
android.enableJetifier=true
现在还有另一个与run-android
相关的错误react-native-gesture-handler
。然后我yarn remove
当前react-native-gesture-handler
的1.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.
该错误与缺少 6 个软件包有关,我猜它仍然与 Androidx 有关。但我不知道如何解决它。有一个问题帖子(针对 RN-gesture-handler)建议降级到版本1.0.5
进行修复,但我不想使用这样的旧版本。
解决方案
它会导致RN 0.60
. 您可以通过以下方式解决此问题,
npm i jetifier
npx jetify
为我修好了RN 0.60
。
祝你有美好的一天。
推荐阅读
- keras - MLflow 在每个 epoch 后保存权重
- neural-network - 如何确定哪种卷积神经网络架构可以识别自己的数据集?
- asp.net-mvc - 负载平衡器到位时获取真实客户端 IP 地址的问题
- node.js - 如何仅使用 Docker-compose.yml 文件而不使用 Dockerfile 来启动 Node.js 应用程序的容器
- html - 如何在 1 行的小屏幕上正确堆叠 col 元素?
- c++ - c++ typeid使用get()和*为同一个unique_ptr返回不同的值
- javascript - 在下面滚动 React-big-calendar 中的新事件
- javascript - 将函数绑定到 SVG 元素
- php - 查看值是否存在于深层嵌套的 json 数组中
- nlp - 如何在 NER 任务中使用 BERT 仅用于从没有分类的序列中提取实体?