react-native-exceptions-manager
!GitHub licenselicense-imagelicense-url
!NPM versionnpm-imagenpm-url
!Dependency Statusdavid-imagedavid-url
!Downloadsdownloads-imagenpm-urlReact-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>