mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
2ae06df58f
Summary: Fixed a bug in `react_native_assert` that was not effectively letting the app call `abort()`. The app was actually printing on log twice. Ref: https://developer.android.com/ndk/reference/group/logging#__android_log_assert Changelog: [Android] [Changed] - Let react_native_assert really abort the app Reviewed By: JoshuaGross Differential Revision: D32204080 fbshipit-source-id: ca16c50aaf4e41a2318277c233be0e944b2ad8f1
46 lines
1.0 KiB
C++
46 lines
1.0 KiB
C++
/*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#ifdef __ANDROID__
|
|
|
|
#include <android/log.h>
|
|
|
|
// Provide a prototype to silence missing prototype warning in release
|
|
// mode.
|
|
extern "C" void react_native_assert_fail(
|
|
const char *func,
|
|
const char *file,
|
|
int line,
|
|
const char *expr);
|
|
|
|
extern "C" void react_native_assert_fail(
|
|
const char *func,
|
|
const char *file,
|
|
int line,
|
|
const char *expr) {
|
|
// Print as an error so it shows up in logcat before crash...
|
|
__android_log_print(
|
|
ANDROID_LOG_ERROR,
|
|
"ReactNative",
|
|
"%s:%d: function %s: assertion failed (%s)",
|
|
file,
|
|
line,
|
|
func,
|
|
expr);
|
|
// ...and trigger an abort so it crashes and shows up in uploaded logs.
|
|
__android_log_assert(
|
|
nullptr,
|
|
"ReactNative",
|
|
"%s:%d: function %s: assertion failed (%s)",
|
|
file,
|
|
line,
|
|
func,
|
|
expr);
|
|
}
|
|
|
|
#endif // __ANDROID__
|