新版本的AIR使我们能够全局捕获运行时错误并处理它们。问题是,除了错误 ID、错误消息和名称之外,它没有堆栈跟踪或任何有关错误的有用信息。例如,它可能告诉我发生了空指针异常,但它不会告诉我在哪里、哪个方法或任何事情。运行时的调试版本为我们提供了所有这些,但是当应用程序部署给客户时,它并没有在调试版本上运行,因此没有任何有用的信息可用。我想知道该小组是否对如何在 AIR 应用程序中更好地记录错误以提高产品的可支持性有任何建议。有什么建议么?
我也有一些技巧来获取行号。 :)
-
创建一个监听器以获取未捕获的错误。我在我的主课上这样做:
private function addedToStageHandler(event:Event):void {
loaderInfo.uncaughtErrorEvents.addEventListener( UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler );
}
-
例如我的听众error.getStackTrace()
:
private function uncaughtErrorHandler( event:UncaughtErrorEvent ):void
{
var errorText:String;
var stack:String;
if( event.error is Error )
{
errorText = (event.error as Error).message;
stack = (event.error as Error).getStackTrace();
if(stack != null){
errorText += stack;
}
} else if( event.error is ErrorEvent )
{
errorText = (event.error as ErrorEvent).text;
} else
{
errorText = event.text;
}
event.preventDefault();
Alert.show( errorText + " " + event.error, "Error" );
}
添加额外的编译器参数:-compiler.verbose-stacktraces=true
- 创建发布版本。
- 现在是小技巧:
苹果:
转到包含 .app 文件的安装位置。右键单击并选择显示包内容。导航至目录 ▸ 资源 ▸ META-INF ▸ AIR。在那里你可以找到一个名为 hash.txt 的文件。复制哈希文件并将其重命名为 debug。使用某些文本编辑器打开调试文件并删除内容。现在完成,您将获得堆栈跟踪+行号。
视窗:
在文件资源管理器中浏览到其安装目录。导航到 {应用程序文件夹}▸META-INF▸AIR▸。在这里你可以找到一个名为 hash.txt 的文件。复制哈希文件并将其重命名为 debug。使用某些文本编辑器打开调试文件并删除内容。现在完成,您将获得堆栈跟踪+行号。
如果找不到哈希文件,只需创建一个不带文件扩展名的空文件并将其命名为“debug”。
使用 Air 3.6 进行测试!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)