我正在尝试为我的应用程序创建崩溃报告。当游戏使用debug运行时,获取堆栈跟踪很容易:它包含在崩溃中创建的Error对象中。但是在没有调试的情况下运行时,缺少此信息。
有没有办法获取这些信息?
答案 0 :(得分:0)
您可以在应用的可疑位置使用try-catch块。
try {
ExternalInterface.call('conf', 4);
ExternalInterface.addCallback('transcodeReqAnswer', analyseTranscodeAnswer);
} catch(er:Error) {
debugTextField.text = er.getStackTrace();
}
答案 1 :(得分:0)
如果要在调试模式下编译,则必须通过ExternalInterface将参数传递给javascript。然后,您应该能够从浏览器的控制台输出中看到堆栈跟踪。
示例:
flash.system.Security.allowDomain(sourceDomain)
ExternalInterface.call("print", error.getStackTrace());
在JavaScript中应该有一个函数
function takeLog(string) {
console.log("stacktrace: " + string);
}
在非调试模式下,getStackTrace()函数返回null。
官方文档中的更多信息, ExternalInterface.call(), getStackTrace()