ReactNativeJNI: Check failed: *m_isDestroyed JSCExecutor::destroy() must be called before its destructor

Short post to get this indexed as we didn’t find it elsewhere on the web.

While working to ship a new release of the Find&Save Android app we ran into a crash on launch which only occurred in our release build. The crash was in JSCExecutor.cpp which is part of React Native and left very few hints as to what was wrong with no call stack, Crashlytics logs etc. The only error we had was:

ReactNativeJNI: Check failed: *m_isDestroyed JSCExecutor::destroy() must be called before its destructor

Our first assumption was a problem with the RN bundle, a minimized JS file included as a resource within the app. We traded out a non-debug version of the bundle but still had the same crash. After a bunch of Googling I found this post which hinted Proguard could be part of the problem which in hindsight seems like a logical place to look. Sure enough disabling Proguard yielded a working release build so now we’ll need to dig a bit deeper and figure out which options we may need to tweak to restore it.

CC BY-NC-SA 4.0
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.