apache-flex - 我可以构建 Adob​​e AIR 应用程序的调试版本吗?

标签 apache-flex debugging air adobe

我正在尝试在客户端机器上调试问题。问题是问题是一个运行时错误,几乎没有关于它在哪里的线索。这是一个间歇性问题。我知道 ADL 允许我在 Debug模式下运行应用程序。问题是告诉用户下载和管理 ADL 调用将非常困难。如果我可以给最终用户一个安装/可执行文件来安装和运行,然后将问题的跟踪发送给我,那将会容易得多。所以我正在寻找的是让客户端能够在 Debug模式下运行 AIR 应用程序的简单步骤。下载 ADL 并找到应用程序的安装位置将很难与最终用户进行远程管理。

更新:
您必须确保您使用的是 AIR 3.5 和 Flash 11.5,并且还在其他编译器设置中包含以下标志“-swf-version=18”。然后,您必须捕获答案中提到的全局错误,它会向您显示错误的位置。当然没有行号。只是常规名称。感谢李一百万的回答。

最佳答案

不是直接的答案,但如果您发布 AIR3.5(或 3.6 测试版),您可以获得一些调试信息:

将未捕获的 RTE 的监听器添加到应用程序的顶层:

this.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, globalErrorHandler);

并从监听器中的错误中获取调试信息:
function globalErrorHandler(event:UncaughtErrorEvent):void
{
    var message:String;
    //check for runtime error
    if (event.error is Error)
        message = (event.error as Error).getStackTrace();
    //handle other errors
    else if (event.error is ErrorEvent)
        message = (event.error as ErrorEvent).text;
    else
        message = event.error.toString();
    //do something with message (eg display it in textfield)
    myTextfield.text = message;
}

即使对于发行版 AIR 应用程序(只要您使用 AIR3.5 或更高版本),getStackTrace 也会返回堆栈跟踪。

关于apache-flex - 我可以构建 Adob​​e AIR 应用程序的调试版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13999626/

相关文章:

apache-flex - ActionScript :未定义的公共(public)变量?

iphone - Adobe AIR for iPhone应用程序商店?

sql - 为什么不直接从客户端连接到 SQL 服务器?为什么我们需要客户端-服务器模型中的应用服务器?

php - 从 Flex 打开自定义 IE 窗口或窗口可以自定义自身吗?

apache-flex - Flex - 以更高的 dpi 保存图像

apache-flex - Flex - new ClassFactory() 与完全限定名称

c++ - 如何比较两个不同断点之间的实例状态

javascript - 如何触发使用闭包变量的事件?

javascript - 如何调试由 Chutzpah/PhantomJS 执行的 JavaScript

android - 使用 ScrollRect 阻塞/触发输入事件隐藏对象