【问题标题】:React Native Runtime Error: No native client found. Is Bugsnag React Native installed in your native code project?React Native 运行时错误:未找到本机客户端。 Bugsnag React Native 是否安装在您的本机代码项目中?
【发布时间】:2019-10-04 16:40:38
【问题描述】:

我正在尝试将 bugsnag 集成到我的 react 本机应用程序中。应用程序构建成功,但当应用程序在模拟器或模拟器上加载时,它会引发异常

Bugsnag: No native client found. Is BugsnagReactNative installed in your native code project?
Client

<unknown>
    global.js:4:27
loadModuleImplementation
    require.js:331:6
<unknown>
    index.android.js:9
loadModuleImplementation
    require.js:331:6
guardedLoadModule
    require.js:197:45
global code

我已经更新了我的 AndroidManifest.xml、MainApplication.java、Info.plist、build.gradle 以包含 api-key 并且 bugsnag-react-native 也成功了。

我的 package.json 版本看起来像

"react": "16.8.3",
"react-native": "0.59.10",
"bugsnag-react-native": "^2.23.2",

AndroidManifest.xml

 <meta-data android:name="com.bugsnag.android.API_KEY"
               android:value="API KEY"/>

MainApplication.java

@Override
 public void onCreate() {
    super.onCreate();
    BugsnagReactNative.start(this);
    SoLoader.init(this, /* native exopackage */ false);
  }

info.plist

<key>BugsnagAPIKey</key>
<string>API KEY</string>

【问题讨论】:

  • 遇到同样的问题
  • @PhilAndrews 在你的 settings.gradle 中添加自动生成的导入,当你在 `include ':app' include ':bugsnag-react-native' project(':bugsnag -react-native').projectDir = new File(rootProject.projectDir, '../node_modules/bugsnag-react-native/android') ` 确保在 Xcode 中链接了二进制文件` libz.tbd 和 libBugsnagReactNative.a `在你的 mainapplication.java 中,在 packages 对象下添加下面的行 `new MainReactPackage(), BugsnagReactNative.getPackage() ` 应该这样做

标签: android ios react-native bugsnag


【解决方案1】:

来自Bugsnag Basic Configuration,您缺少以下内容:

在应用的入口点中导入并初始化 Bugsnag,通常是 index.js(或 index.ios.js 和 index.android.js):

import { Client } from 'bugsnag-react-native';
const bugsnag = new Client('YOUR-API-KEY-HERE');

您不需要在 info.plist 文件中包含键值,除非您从那里加载值(我认为您不是)

【讨论】:

  • 我已经完成了,只是忘记将其添加到问题中。
  • 您在哪个平台上遇到此问题? Android 还是 iOS?
  • 您是否在 MainApplication 中的 getPackages() 中添加了 BugsnagReactNative.getPackage()
  • 在两个平台上
  • 添加 BugsnagReactNative.getPackage() 不会构建应用程序
【解决方案2】:

如果你做了 react-native 链接 bugsnag-react-native。 如果您遇到此问题,则需要进行以下更改。我找到了解决方案。

在你的 Android/settings.gradle 中将 include bugsnag-react-native 放在 include ':app'

include ':app'
include ':bugsnag-react-native'
project(':bugsnag-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/bugsnag-react-native/android')

确保在 Xcode 中链接了二进制文件。为此,请在 Xcode 中选择您的项目,单击构建阶段,将二进制文件与库链接并添加以下库。要从 Xcode 中的 node_modules 手动导入 bugsnag-react-native,请点击以下链接

libz.tbd and 
libBugsnagReactNative.a

在您的MainApplication.java 中添加 getPackages() 中的行

protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
new MainReactPackage(), BugsnagReactNative.getPackage()

这应该做的工作。

Bugsnag 文档 Manual linking

【讨论】:

    【解决方案3】:

    在您的 MainApplication.java 中,您可能需要将以下内容添加到文件的顶部:

    import com.bugsnag.BugsnagReactNative;
    

    【讨论】:

      猜你喜欢
      • 2018-02-17
      • 1970-01-01
      • 2021-11-11
      • 2019-10-02
      • 2022-11-26
      • 2022-08-21
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多