【问题标题】:React-native Android release build broken (UI navigation breaks without error) - works correctly in debug buildReact-native Android 发布版本损坏(UI 导航中断没有错误)- 在调试版本中正常工作
【发布时间】: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


【解决方案1】:

事实证明,Javascript 包的缩小破坏了我的代码。

没有输出错误,因为异常是在异步函数中引发的。

我能够通过 app/build.gradle 将“--minify=false”传递给打包程序来禁用压缩包:

project.ext.react = [
    entryFile: "index.js",
    enableHermes: false,  
    extraPackagerArgs: [ '--minify=false' ]
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    相关资源
    最近更新 更多