问题记录
在使用 react-navigation3.x 时,安卓设备遇到侧滑组件 createDrawerNavigator 无法侧滑的问题。
运行 run-ios 时没有问题,但是在运行 run-android 时。会不定期的出现
EPERM: operation not permitted, lstat <some_path_here>
(这里不得不吐槽一下。window 上做开发真的是太恶心了,用虚拟机跑 mac 使用两天,体检就一个字——————爽,但是因为是虚拟机跑的,运行 ios 模拟器卡的要死。现在买不起 mac 是不是先弄个黑苹果呢)
问题一
详细:react 版本 16.8.3,react-native 版本 0.59.4,react-navigation 版本 3.8.1。使用 react-navigation 的 createDrawerNavigator 侧拉抽屉,在安卓下侧拉没有反应。 解决:在项目根目录下进入 android\app\src\main\java\com\项目名称\MainActivity.java 添加下段中带加号的代码
package com.reactnavigation.example;
import com.facebook.react.ReactActivity;
+ import com.facebook.react.ReactActivityDelegate;
+ import com.facebook.react.ReactRootView;
+ import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
public class MainActivity extends ReactActivity {
@Override
protected String getMainComponentName() {
return "Example";
}
+ @Override
+ protected ReactActivityDelegate createReactActivityDelegate() {
+ return new ReactActivityDelegate(this, getMainComponentName()) {
+ @Override
+ protected ReactRootView createRootView() {
+ return new RNGestureHandlerEnabledRootView(MainActivity.this);
+ }
+ };
+ }
}
如果是真机调试,先删除 app,再连接数据线在拨号中输入'*#*#7777#*#*',打开开发者模式。重新安装后即可;如果是在安卓模拟器调试,重新运行安卓模拟器即可。
问题二
详细:react 版本 16.8.3,react-native 版本 0.59.4,react-navigation 版本 3.8.1。平台:win10,开发工具:vs code。运行 run-android 命令有时会出现 EPERM: operation not permitted, lstat <some_path_here>
,项目运行不起来
解决:进入 android 目录下,运行 ./gradlew clean
清除后再 react-native run-android 就好了