javascript - Integrating Crashlytics into React Native - Android -
i've set crashlytics integration ios our react native project, , have managed android version registered well. problem reports java/system related crashes - if there javascript exception thrown doesn't register reporting. working, ios version has functionality already.
i've set reporting outlined in fabric docs , this question - see second answer down, i've added oncreate in mainactivity.
following have attempted create own nativemodulecallexceptionhandler per this issue comment. code below:
package com.mypackage; import com.facebook.react.bridge.nativemodule; import com.facebook.react.bridge.reactapplicationcontext; import com.facebook.react.bridge.reactcontext; import com.facebook.react.bridge.reactcontextbasejavamodule; import com.facebook.react.bridge.reactmethod; import com.facebook.react.modules.core.javascriptexception; import com.facebook.react.bridge.nativemodulecallexceptionhandler; import java.util.map; import com.crashlytics.android.crashlytics; class crashlyticserrormodule extends reactcontextbasejavamodule { public crashlyticserrormodule (reactapplicationcontext reactcontext) { super(reactcontext); addexceptionhandler(reactcontext); } @override public string getname() { return "crashlyticserrormodule"; } private void addexceptionhandler(reactapplicationcontext reactcontext) { reactcontext.setnativemodulecallexceptionhandler(new nativemodulecallexceptionhandler() { @override public void handleexception(exception e) { if (e instanceof javascriptexception) { crashlytics.log(e.getmessage()); } else { crashlytics.logexception(e); } } }); } the code compiles no errors, javascript exceptions still not being reported.
even when deliberately throwing runtime exceptions in oncreate() or @ end of addexceptionhandler() method, handleexception() not called. crashlytics notified however, exceptions getting caught somewhere!!
links source code in issue comment above.
https://github.com/facebook/react-native/issues/1194
in short: can use errorutils.setglobalhandler((err, isfatal) => { ... }); catch js exceptions , throw craslytics crashlytics.recordcustomexceptionname(...). react-native-fabric-crashlytics npm module can automatically.
don't forget add fabric.with(this, new crashlytics()) oncreate() method of mainapplication (or mainactivity if use rn lower 0.29).
Comments
Post a Comment