java - 如何在弹出的expo项目中安装react-navigation?

标签 java android react-native react-navigation expo

我正在尝试按照this上的官方安装说明在我弹出的expo应用程序中安装react-navigation页。在下面的说明中,典型地添加了包并通过 react-native link 进行链接,需要将其他代码添加到文件 MainActivity.java 中。

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

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

  • 无论如何包含代码都会产生错误[编译错误]错误:方法不会覆盖或实现父类(super class)型的方法
  • 包含代码、将 DetachActivity 替换为 ReactActivity 并删除所有覆盖 DetachActivity 方法的方法会导致应用崩溃。
  • 不包含任何内容都会产生错误[手机红屏] native 模块 com.swmansion.gesturehandler.react.RNGestureHandlerModule 尝试覆盖 versioned.host.exp.exponent.modules.api。 Components.gesturehandler.react.RNGestureHandlerModule 为模块名称 RNGestureHandlerModule。检查MainApplication.java中的getPackages()方法,可能是该模块被创建了两次。如果这是您的 Intent ,请设置 canOverrideExistingModule=true

我真的很感激一些明智的建议!另外,我对java不是很熟悉,但非常愿意学习一些新东西!

最佳答案

2019 年 12 月更新

忽略下面的内容。 如今,Expo 正在将它们的内置依赖项分离为“react-native-gesture-handler”。所以我们需要安装它。 Ref

解决方案

总结一下,

返回到您从 expo 中弹出项目的提交。并安装react-navigation。 不要将其他安装为 react-native-gesture-handler

仅此而已。

为什么

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

native 模块 com.swmansion.gesturehandler.react.RNGestureHandlerModule 尝试覆盖模块名称 RNGestureHandlerModule 的 versioned.host.exp.exponent.modules.api.components.gesturehandler.react.RNGestureHandlerModule。检查MainApplication.java中的getPackages()方法,可能是该模块被创建了两次。如果这是您的 Intent ,请设置 canOverrideExistingModule=true。

此消息可能是您再次安装的 RNGestureHandlerModule 引起的。

关于java - 如何在弹出的expo项目中安装react-navigation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56411178/

相关文章:

javascript - java中将记录上传到数据库时的Jquery进度条

java - 无法构建同时包含 Azure SDK 和 Google Play 的应用程序

android - 在模拟器上运行我的 Android 应用程序时遇到错误

react-native - 如何在 react native 平面列表中滚动到顶部后调用函数

react-native - 打开原始底部模式表后模糊整个页面

java - 在 C# 和 Java 之间传递 DateTime?

java - 如何在java中访问C++库(DLL)的方法

java - 如何从 java 应用程序访问数据库而无需在 xampp 上外部放置 mysql 服务器

Android 未排序列表

Android 在 onlayout 方法中调整另一个 View 的大小