【发布时间】:2020-01-31 17:47:46
【问题描述】:
我有一个 react-native 应用程序,它在 Android 调试版本中正常工作,但在 Android 发布版本中不工作。
该应用正在使用 redux、axios 和 react-navigation:
- 首页搜索输入框
- 按下“搜索按钮”会调用 redux thunk,它会通过 axios 发出 API 请求,更新 redux reducer 状态
- 主屏幕监控 redux reducer 状态,当我们有新的搜索结果时,它会使用 react-navigation 导航到结果屏幕
所有这些都可以在真正的 Android 设备和模拟器(react-native run-android)上的调试模式下正常工作。
当我运行发布版本 (react-native run-android --variant=release) 时,它会像以前一样编译、安装和加载主屏幕,但是当我按下搜索按钮时,它不会导航到搜索结果.没有错误。
我测试过的东西:
-
应用是否触发和异常/错误?
- 不,没有错误。该应用程序继续运行。运行 adb logcat 会显示分配的日志数据,但在启动/测试应用程序时我没有看到任何新错误。
-
API 请求是否被触发?
- 是的。通过启用无 SSL 流量 (cleartextTrafficPermitted="true"),我能够在发布版本中运行 Reactotron,我可以看到 API 请求已发出并接收到响应数据。但是日志输出此时停止。没有错误。
-
API SSL 证书是否满足安卓要求?
- 是的。我已经测试过了(ssllabs.com)。它在真实设备上以调试模式工作,因此它也应该在版本中工作。
-
是一个过时的依赖导致失败吗?
- 我尝试将我的依赖项更新到最新版本。该应用在调试模式下继续正常工作,但在发布时中断。
如何找出导致失败的原因?
【问题讨论】:
-
您是否已将
import 'react-native-gesture-handler';导入到您的 index.js 或 app.js 中? -
@Kishan 我给了那辆去巴士它没有帮助。需要明确的是,UI 对手势和点击做出反应。当我点击按钮时,它会触发 api 请求。在那之后它在某个地方坏了。
标签: android react-native redux react-navigation release