如何在弹出的EXPO项目中安装反应导航?

时间:2019-06-01 23:36:19

标签: java android react-native react-navigation expo

我正在按照this页上的官方安装说明尝试在弹出的博览会应用中安装react-navigation。在下面的说明中,典型地添加了软件包并通过react-native link进行了链接,在文件MainActivity.java中添加了附加代码。

现在我的问题是,在安装说明中,类MainActivity扩展了类ReactActivity,但是由于我在代码中使用了弹出的expo应用程序,因此扩展了类{{1} } ,它似乎与安装指令的给定代码不兼容,因此,我真的不知道如何解决该不兼容问题(尤其是因为我什至无法通过Google找到有关此问题的信息-甚至a dark secret nobody talks about?)。

我尝试过但没有用的一些方法:

  • 始终包含代码都会产生错误[编译错误] DetachActivity
  • 包含代码,将error: method does not override or implement a method from a supertype替换为DetachActivity,并删除覆盖ReactActivity方法的所有方法会导致应用崩溃。
  • 不包含任何内容会产生错误[手机上的红色屏幕] DetachActivity

我非常感谢一些明智的提示!另外,我对Java不是很熟悉,但是我完全愿意学习一些新知识!

1 个答案:

答案 0 :(得分:0)

解决方案

总结一下,

返回到您从expo弹出项目的提交。并安装react-navigation。 请勿将其他用户安装为react-native-gesture-handler

仅此而已。

为什么

如果从expo弹出项目,则这些项目将依赖ExpoKit,因此无需再次安装已经构建的模块。 react-native-gesture-handler是其中一个模块。 因此,也不需要react-native link

Native module com.swmansion.gesturehandler.react.RNGestureHandlerModule tried to override versioned.host.exp.exponent.modules.api.components.gesturehandler.react.RNGestureHandlerModule for module name RNGestureHandlerModule. Check the getPackages() method in MainApplication.java, it might be that module is being created twice. If this was your intention, set canOverrideExistingModule=true.

此消息可能是由您重新安装的RNGestureHandlerModule引起的。