现在已经在main.js添加window.__errorHandler函数,但是好像没有被调用, 请指教?
一样的问题 ,没有回调.在cpp层已经打印了报错.
ccc1.6.1
iOS在main.js这个位置加了__errorHandler但是不管用,可能是什么原因呢?
你是如何确定没有用的, 我加了之后打印日志没有输出, 也以为没有用, 但是函数确实调用到了, 可能是这个时候日志还没有初始化吧.
上传错误日志的api没有被调用。
还需要额外设置什么吗?
不需要做任何设置. 其实这个也不一定要加到 main.js 中, 任何位置都可以. 你没有收到有没有可能是: 收到后调用 上传错误日志 api 是发生了异常.
window.__errorHandler = function(file, line, msg, error) {
// cc.log("window:onError:", file, line, msg, error);
Crash.CrashReportingHelper.sendException({file: file, line: line, msg: msg, error: error}, "BuglyHelper");
}
我们是在游戏的主场景的 onLoad 中调用的, 注意 cc.log 是没有用的. 建议你可以在这个函数中做一些能够明显观察到的改动, 比如修改 界面上的一个文字.
另外, 你是在什么环境下测试的? web 端吗? 这个好像只有原生环境下才有用.
确定可以不用放在main.js中吗?请问你的ccc版本号?
其他人没有我这样的问题吗?别沉了啊。。。
非常肯定可以, 我 bugly 后台已经收到无数条 js exception 了, 版本号: 1.6.2.
你仔细描述下是如何修改的代码, 如何做的测试. 再把代码贴一下, 我帮你分析下. 大家都是用 __errorHandler 来收集错误的, 不可能只有你有这个问题.
我这里版本号是1.6.1
下面代码写在大厅的场景的onLoad里,然后通过点击某个按钮触发错误,比如调用一个不存在的方法。
window.__errorHandler = function (file, line, error) { //尝试过打印log, 无效 //尝试过发送http请求, 无效 //尝试过修改当前场景的某个元素比如设置label的string, 无效 }
在Xcode和Android Studio中都输出了相关的JS Exception, 但是就是没走到errorHandler这里,
不知道还需要额外设置什么,还是说这种错误不能被捕获?我也尝试过将errorHandler写在main.js中,还是无效
是否存在错误等级的概念?或者说项目build的时候需要额外勾选什么吗?麻烦了!
这样, 我搞了一个最小化的测试项目, 你导入后用模拟器运行起来, 上面有一个按钮, 点完就会触发一个错误, 我在错误监听中修改了界面上的 label:
TestError.zip (550.6 KB)
你导入试一下.
运行效果应该是这个样子的:
注意, 为了能够在 __errorHandler 到 HelloWorld 的成员变量, 函数最后需要 bind(this), 不然会触发递归错误, 导致模拟器崩溃.
window.__errorHandler = function(file, line, msg, error) {
// cc.log("window:onError:", file, line, msg, error);
// Crash.CrashReportingHelper.sendException({file: file, line: line, msg: msg, error: error}, "BuglyHelper");
this.label.string = error;
}.bind(this);
这样话, 你下载一个 1.6.2 试一下?

安卓和IOS上,代码被加密混淆了,行号不对,怎么能获得准确的行号




