我在一个终端中运行int multiply(int s, int b) throws RemoteException {
return s * b;
}
,然后在另一个终端中运行react-native start
。我的初始react-native ios-run
很少显示,有时他们会这样做。
很多次,随便我看到:
日志消息语录超出 - 此过程中的一些消息已被丢弃
我的console.log
被丢弃了吗?我尝试清理控制台以便更清楚地看到它,但我找不到清除控制台的方法。
在Android上,我不会错过console.log
。
答案 0 :(得分:4)
react-native日志信息。该守护进程试图阻止垃圾邮件发送到日志(DoS攻击)。这些限制是基于每个过程设置的。
简单的解决方案是停止/启动模拟器,您将获得不受先前行为限制的新流程。
另一个解决方案是禁用syslogd限制,这将取决于您的操作系统。
答案 1 :(得分:1)
我发现JavascriptCore
引擎不会自动将console.log
重定向到XCode output panel
或系统内置Console.App
,更不用说自我破坏了{{} 1}}命令。
在浏览器中看到没有远程调试的console.log的唯一方法是自己重定向(绑定):
log-ios
警告: //Add this headers
#import <JavaScriptCore/JavaScriptCore.h>
#import <jschelpers/JavaScriptCore. h>
#import <React/RCTBridge+Private.h>
...
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURL *jsCodeLocation;
...
...
[self.window makeKeyAndVisible];
::sleep(2); //<---!!!!!see below
JSGlobalContextRef globalContext = rootView.bridge.jsContextRef;
JSContext *context = [JSC_JSContext(globalContext) contextWithJSGlobalContextRef:globalContext];
context[@"console"][@"log"] = ^(NSString *message) {
NSLog(@"Javascript log: %@",message);
};
return YES;
}
中的JSContext
是在另一个帖子中创建的,我不知道如何获取已加载的事件(仅在我的项目中,因为我不知道我想修改react-native引擎,只是等一段时间用于测试目的。