我遇到了一些非常奇怪的行为,我正在编写的Flex 4.1应用程序阻碍了测试。似乎我可以重新加载应用程序16次,然后在17日,加载过程失败,
Error #2046: The loaded file did not have a valid signature
在Firefox 5.0和Chrome 12上的第17次重装似乎一直在发生。我不确定它是否相关,但我在Ubuntu上运行Flash Player v10.2.159.1(也发生在10.3.181.34) 10.04。适用于播放器的常规版本和调试版本。当我在Windows FF5上运行应用程序时,它似乎不会发生。关闭当前浏览器窗口似乎无法解决问题。唯一的方法是完全关闭所有浏览器窗口并重新启动浏览器。然后在16次成功加载后,第17次失败。
此时我正在考虑将其粉碎为Linux Flash错误,但我想确认并检查是否有人知道我是否应该采取措施来防止这种情况发生。
来自this post的用户似乎遇到了同样的问题,但我猜他没有注意到我的模式。
任何帮助将不胜感激。 鲁伊奎拉
== UPDATE ==
我刚刚意识到在我的应用程序开始抛出2046错误之后,尝试加载使用签名RSL的任何其他Flash也会显示2046错误(例如this app),这意味着问题不是我的应用程序特有的并且很可能与Flash缓存或类似的东西有关。
答案 0 :(得分:10)
披露:我是Adobe的Flash Player开发人员。 这不太可能引起太多关注,因为它只是Linux而且是一种边缘情况:在开发工作期间可能很烦人,但很少有用户会重新加载同一页超过16次。它也可能是一个浏览器问题。但它可能是我们:)明天我会看看jira,看看我是否能稍微提高它,但我会说实话,它确实是一个边缘情况,不太可能得到太多的爱。如果你想增加你的机会,请确保添加最简单的.swf测试用例,你可以对bug进行修改。另外,请仔细检查最新测试版是否仍然存在 我还看了一下早期的bug报告和论坛帖子,你可能应该把它发布为Flash Player的bug而不是Flex。
答案 1 :(得分:1)
远射猜测,但它听起来类似于我们在项目属性中的问题.... Flex构建路径 - 框架链接 - 更改为“合并到代码”。这解决了与您所描述的问题非常相似的问题,但我希望我确切知道原因是什么。祝你好运!
答案 2 :(得分:1)
tl;博士:不知道原因,发布随机可能性,希望它可能给别人一个或两个想法进行测试。
考虑到它似乎是Adobe问题跟踪器中尚未解决的错误,因此您不太可能在此处获得任何确定的答案。考虑到它发生在Firefox和& Chrome,让我们排除浏览器错误并假设它位于某个公共库(Flash)或OS API(Linux内核实现)中。其中一个jira问题中的评论特别提到杀死Flash进程修复它,因此它是一个Flash问题,而不是操作系统错误。
我在这里看到的最有趣的事情是你的观察结果,它在失败加载之前正好成功了16次。这里有一些推测的时间,来自那些从未参与过内核或加密开发的人:
使用2048位RSA密钥和32k高速缓存来存储它们,16个密钥适合添加另一个失败 - 所以一个猜想是每次加载此文件时,Flash都会缓存签名值(可能是散列版本)由于某种原因 - 也许是为了跟踪允许和&使用安全权限等?如果未删除此条目,则一旦填满,如果缓存签名是检查它的一部分,则所有文件加载都将失败。
你可以试验的东西:
我希望实际上找到一个解决方案,你必须深入到库加载代码并查看与加载4,16或16的倍数的有符号库相关的所有常量,看看它们是否可能是负责 - 简而言之,不太可能被Flash开发团队以外的其他人解散:/
答案 3 :(得分:0)
此行为可能与Flex实现或浏览器插件导致的内存泄漏有关。 Firefox因为没有清理内存而臭名昭着,并且在打开相同浏览器窗口的时间越长,占用空间就会越来越大。
如果你缩小flex应用程序的大小以生成非常小的东西,那么你重新加载页面的次数会增加吗?
答案 4 :(得分:-1)
win vista上的错误#2046,64位机器1000 mb ati radeon videocard 问题仅出现在msn视频音乐中
答案 5 :(得分:-1)
当我在icourse163.org上使用ppt时遇到相同的问题。当我打开课程站点时,看不到ppt,但是我使用chrome可以做到。有相同的Flash版本(32.0.0.344),然后复制从adobe下载的tar.gz文件。 usr / *到/ usr。我解决了。希望可以为您提供帮助。