React Native Runtime Error: No native client found. Is Bugsnag React Native installed in your native code project?
React Native Runtime Error: No native client found. Is Bugsnag React Native installed in your native code project?
我正在尝试将 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>
来自 Bugsnag Basic Configuration,您缺少以下内容:
Import and initialize Bugsnag within your app’s entry point, typically
index.js (or index.ios.js and index.android.js):
import { Client } from 'bugsnag-react-native';
const bugsnag = new Client('YOUR-API-KEY-HERE');
你不需要在 info.plist
文件中有键值,除非你从那里加载值(我认为你不是)
如果你做了 react-native link 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 中有二进制文件 linked。为此 select 您在 Xcode 中的项目,单击构建阶段,link 带有库的二进制文件并添加以下库。要在 Xcode 中从 node_modules 手动导入 bugsnag-react-native,请遵循下面的 link
libz.tbd and
libBugsnagReactNative.a
在您的 MainApplication.java
中添加 getPackages()
行
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(), BugsnagReactNative.getPackage()
这应该可以完成工作。
Bugsnag 文档
Manual linking
在您的 MainApplication.java 中,您可能需要将以下内容添加到文件的顶部:
import com.bugsnag.BugsnagReactNative;
我正在尝试将 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>
来自 Bugsnag Basic Configuration,您缺少以下内容:
Import and initialize Bugsnag within your app’s entry point, typically index.js (or index.ios.js and index.android.js):
import { Client } from 'bugsnag-react-native';
const bugsnag = new Client('YOUR-API-KEY-HERE');
你不需要在 info.plist
文件中有键值,除非你从那里加载值(我认为你不是)
如果你做了 react-native link 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 中有二进制文件 linked。为此 select 您在 Xcode 中的项目,单击构建阶段,link 带有库的二进制文件并添加以下库。要在 Xcode 中从 node_modules 手动导入 bugsnag-react-native,请遵循下面的 link
libz.tbd and
libBugsnagReactNative.a
在您的 MainApplication.java
中添加 getPackages()
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(), BugsnagReactNative.getPackage()
这应该可以完成工作。
Bugsnag 文档 Manual linking
在您的 MainApplication.java 中,您可能需要将以下内容添加到文件的顶部:
import com.bugsnag.BugsnagReactNative;