1

我是 100% 的 Java 新手,我正在尝试将 Crashlytics 添加到我的 React Native 项目中。我在互联网上能找到的唯一代码片段是 retrolambda 语法。

我意识到我可以添加那个特定的“库”或其他任何东西,所以它可以工作,但考虑到它是我项目中唯一使用的地方,我宁愿将它转换为“旧格式”,而不是添加一个库只是为了做一个功能.

public final class AppReactPackage implements ReactPackage {

  @Override
  public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
    addExceptionHandler(reactContext);
  }

  private void addExceptionHandler(ReactApplicationContext reactContext) {
    // Fyi, this is using Retrolambda for Java 8 syntax
    reactContext.setNativeModuleCallExceptionHandler(e -> {
      if (e instanceof JavascriptException) {
        Crashlytics.log(e.getMessage());
      } else {
        Crashlytics.logException(e);
      }
    });
  }
}
4

1 回答 1

3

搜索您的语法,我发现了这两个链接:

  1. 反应
  2. NativeModuleCallExceptionHandler

通过使用这些,它应该看起来像这样:(未经测试)

private void addExceptionHandler(ReactApplicationContext reactContext) {
    reactContext.setNativeModuleCallExceptionHandler(new NativeModuleCallExceptionHandler() {
        @Override
        public void onHandleException(Exception e) {
            if (e instanceof JavascriptException) {
                Crashlytics.log(e.getMessage());
            } else {
                Crashlytics.logException(e);
            }
        }
    });
}
于 2016-01-09T18:11:21.297 回答