使用React 60.0及更高版本来响应本机Fabric自动链接错误

时间:2019-07-25 12:39:04

标签: react-native react-native-android google-fabric

我已将我的应用程序升级到react-native 60.4,它支持自动链接所有软件包,因此您不必手动进行设置,从而降低了出错的机会。

问题是大多数软件包仍未与此过程兼容,因此应用程序完全崩溃。

我的错误是因为https://github.com/corymsmith/react-native-fabric

指的是同一仓库的问题-> https://github.com/corymsmith/react-native-fabric/issues/225,但仍未得到答复。

我开始尝试通过分叉存储库并了解react native提供的自动链接过程。

在我替换的node_module软件包的package.json中

"rnpm": {
    "android": {
     "packageInstance": "new FabricPackage()"
    }
},

在包根目录中有文件react-native.config.js

module.exports = {
  dependencies: {
    'react-native-fabric': {
        platforms: {
            android: {
                "packageImportPath": "import com.smixx.fabric.FabricPackage;",
                "packageInstance": "new FabricPackage()"
            }
        }
    }
  }
};

我还将构建版本从3.1.0更新到了3.4.1

我的React Native应用程序现在可以找到该软件包。

但是当我在我的react组件中调用该包时,会收到NoClassDefFoundError,这意味着找不到该类。

其他任何人都可以尝试并有解决方案,请告诉我。

2 个答案:

答案 0 :(得分:1)

尝试使用react-native取消链接来取消链接,然后再次重新运行代码。

答案 1 :(得分:1)

从上面的注释中将其放在此处以使其更加清晰:

好吧,我通过更改分叉的仓库来解决这个问题->(在具有自动发现和链接配置的包根中添加了react-native.config.js),但是我认为我看到的唯一可扩展的解决方案现在不会降级到RN ^ 59.0,因为没有很多软件包会自动更改链接配置。因此,将等待RN 60.4成熟,然后在大约一个月内升级到RN 60.4。除此以外,该结构目前正在迁移到Firebase,并计划在年底之前完成。这意味着无论如何sdk集成都将过时,因此该软件包也将退出。

这个问题也主要与react-native-fabric有关,与RN本身无关。