React Native应用在Android上从相机返回时崩溃

11
我遇到了一个似乎相当普遍的问题,但我还没有找到解决方法。我正在使用 react-navigationreact-native-screensreact-native-image-picker。最后一个插件允许应用程序拍照并从图库中加载照片。它大部分时间都可以正常工作,但有时在拍照并返回应用程序后会崩溃。我在他们的 GitHub 上搜索了一下解决方案,发现这个崩溃的报告很多,但却没有一个解决方法。这个崩溃也被报告在另一个库 react-native-image-crop-picker 中,所以看起来不是插件的问题,而是 Android 的问题。
以下是 Firebase 崩溃日志的内容:
无法启动活动 ComponentInfo{com.myApp/com.myApp.MainActivity}: androidx.fragment.app.Fragment$InstantiationException: 无法实例化碎片 com.swmansion.rnscreens.ScreenStackFragment 无法实例化碎片 com.swmansion.rnscreens.ScreenStackFragment 屏幕片段不应该被恢复。请按照https://github.com/software-mansion/react-native-screens/issues/17#issuecomment-424704067中的说明正确配置您的主要活动。
这似乎与 Android 在需要更多内存时如何杀死后台应用程序有关。最后一个错误链接到一个 Github 问题。他们建议修改 MainActivity.java -> onCreate() 并将 super.onCreate(savedInstanceState); 更改为 super.onCreate(null);。但是,这并没有解决任何问题,它只是使应用程序重新启动而不是崩溃,但我仍然失去了整个导航堆栈和刚刚拍摄的照片。是否有适当的解决此问题的方法?

嗨。你曾经找到解决这个问题的方法吗?我已经苦恼了好几个月... - Kevin Gardenhire
@KevinGardenhire 不好意思,似乎每个将您的应用程序置于后台的库都有这个问题。最终我使用了另一个库在应用程序内部实现自己的相机。我记不清我为那个特定项目使用了哪个库,但我最近使用了expo-camera并且它运行良好(我不得不将我的项目转换为裸露的expo)。 - MarioZ
1个回答

0
在任何导航到另一页的应用程序按钮中,不要使用 navigate,而是使用 dispatch.reset,这是与 React Navigation 状态相关的问题。
this.props.navigation.dispatch(
  CommonActions.reset({
    index: 1,
    routes: [
      {name: 'AtualScreen'},
      {name: 'NextScreen', params: {data: data}},
    ],
  }),
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接