【问题标题】:React native Fabric autolink error with react 60.0 and above反应 60.0 及更高版本的反应本机 Fabric 自动链接错误
【发布时间】:2019-12-03 17:52:52
【问题描述】:

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

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

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

提到相同的回购问题 -> https://github.com/corymsmith/react-native-fabric/issues/225,仍未得到答复。

我开始尝试通过分叉 repo 并了解 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()"
            }
        }
    }
  }
};

我还将构建 gradle 从 3.1.0 更新到 3.4.1

我的 react native 应用现在能够找到包。

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

其他人尝试过并有解决方案,请告诉我。

【问题讨论】:

  • 错误是什么?
  • NoClassDefFoundError 错误是一个存在但依赖的类。查看与此类关联的依赖项。
  • 升级到 gradle 3.4.1 时会发生这种情况。我调用包时的错误是FabricPackage missing
  • 好的,我通过更改分叉的 repo 来实现这一点,但我认为我现在看到的唯一可扩展的解决方案是降级到 RN ^59.0,因为不是很多包都有自动链接配置更改。所以将等待 RN 60.4 成熟,然后升级到它。

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


【解决方案1】:

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

【讨论】:

  • 它仍然有效,因为 react-native-share 仍然使用 rnpm 并且 RN^60.4 不允许这样做。这需要使用自动发现和链接配置更改包根目录下react-native.config.js 文件中的配置
【解决方案2】:

从上面的评论中把它放在这里更清楚:

好的,我通过更改分叉的 repo ->(在包的根目录中添加一个带有自动发现和链接配置的 react-native.config.js)来实现这一点,但我认为我看到的唯一可扩展的解决方案现在是降级到 RN ^59.0,因为不是很多包都有自动链接配置更改。所以会等 RN 60.4 成熟,然后在一个月左右升级到它。除了这种结构,目前正在迁移到 firebase,并计划在年底前完成。这意味着无论如何 sdk 集成都将过时,因此该软件包也将过时。

此外,此问题主要与 react-native-fabric 相关,而不是 RN 本身。

【讨论】:

    猜你喜欢
    • 2019-04-12
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多