react-native-exceptions-manager

React-Native Crash Reporter(Do not trigger native crash).

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
react-native-exceptions-manager
2900.2.07 years ago8 years agoMinified + gzip package size for react-native-exceptions-manager in KB

Readme

react-native-exceptions-manager
!GitHub licenselicense-imagelicense-url !NPM versionnpm-imagenpm-url !Dependency Statusdavid-imagedavid-url !Downloadsdownloads-imagenpm-url
React-Native Crash Reporter In Release Version(Do not trigger native crash).
Linking

Android

  • Add following lines into ``android/settings.gradle``

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

  • Add following lines into your ``android/app/build.gradle` in section `dependencies``

compile project(':react-native-exceptions-manager')

  • Add following lines into ``MainApplication.java``

import com.richardcao.exceptionsmanager.react.ExceptionsManager;
...

@Override
protected List<ReactPackage> getPackages() {
    List<ReactPackage> packages = Arrays.asList(
            new MainReactPackage(),
            ...);
    ArrayList<ReactPackage> packageList = new ArrayList<>(packages);
    if (!BuildConfig.DEBUG) {
        packageList.add(new ExceptionsManager());
    }
    return packageList;
}

  • Create a class named ``ReactNativeJSCrashReceiver` in it. This is needed to get js crash message from react-native-exceptions-manager`.

public class ReactNativeJSCrashReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("com.richardcao.android.REACT_NATIVE_CRASH_REPORT_ACTION")) {
            Throwable js = (Throwable) intent.getSerializableExtra("JavascriptException");
            ...(handler or report js crash operate)
            Throwable e = (Throwable) intent.getSerializableExtra("Exception");
            ...(handler or report native crash operate)
        }
    }
}

  • Add ``ReactNativeJSCrashReceiver` declare in your `AndroidManifest.xml``

<application
    android:name=".MainApplication"
    android:allowBackup="true"
    ...>
    ...
    <receiver android:name=".ReactNativeJSCrashReceiver">
        <intent-filter>
            <action android:name="com.richardcao.android.REACT_NATIVE_CRASH_REPORT_ACTION" />
        </intent-filter>
    </receiver>
</application>

iOS

//TODO

Who Use It

MIT Licensed