6

我开始使用新的 flex hero sdk 将这个 flex 应用程序转换为在 android 上运行。我已经更换了所有与移动设备不兼容的组件,并成功运行了几次。

当我使用运行原始 web 应用程序的相同库时,它可以完美运行。

然而,最大的问题是在启动移动应用程序时这些随机的 Invalid BitMapdata 错误。这是整个输出。

ArgumentError: Error #2015: Invalid BitmapData.
at flash.display::BitmapData/ctor()
at flash.display::BitmapData()
at spark.primitives::BitmapImage/http://www.adobe.com/2006/flex/mx/internal::applySource()[E:\dev\hero_private_beta\frameworks\projects\spark\src\spark\primitives\BitmapImage.as:1337]
at spark.primitives::BitmapImage/http://www.adobe.com/2006/flex/mx/internal::validateSource()[E:\dev\hero_private_beta\frameworks\projects\spark\src\spark\primitives\BitmapImage.as:1652]
at spark.primitives::BitmapImage/commitProperties()[E:\dev\hero_private_beta\frameworks\projects\spark\src\spark\primitives\BitmapImage.as:902]
at spark.primitives.supportClasses::GraphicElement/validateProperties()[E:\dev\hero_private_beta\frameworks\projects\spark\src\spark\primitives\supportClasses\GraphicElement.as:3487]
at spark.components::Group/commitProperties()[E:\dev\hero_private_beta\frameworks\projects\spark\src\spark\components\Group.as:931]
at mx.core::UIComponent/validateProperties()[E:\dev\hero_private_beta\frameworks\projects\framework\src\mx\core\UIComponent.as:8095]
at mx.managers::LayoutManager/validateProperties()[E:\dev\hero_private_beta\frameworks\projects\framework\src\mx\managers\LayoutManager.as:597]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\hero_private_beta\frameworks\projects\framework\src\mx\managers\LayoutManager.as:760]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\hero_private_beta\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1157]

我调试了很多次,发现到了这个方法的时候

mx_internal function applySource():void
{

在 BitmapImage.as 中,在此声明中

if (!bitmapData && tmpSprite)

位图数据 == 空。但是,当我运行原始 Web 应用程序时,bitmapData 不为空。bitmapData 值应该在这行代码中确定

<s:BitmapImage id="smallTriangle" smooth="true" source="@Embed('/com/xploreplus/components/containers/panel/assets/images/smallTriangle.png')" />

现在在我看来,在运行移动应用程序时,它无法找到图像,因为当我运行 web 应用程序时,使用上面代码行所在的同一个库,它能够找到图像。

这个问题已经困扰我好几天了,我真的开始认为这是一个错误,特别是因为它有时确实会运行。或者我在这里缺少什么。

4

1 回答 1

2

我几乎可以肯定这是一个内存问题。错误出现在 BitmapData 构造函数中的事实表明应用程序正在尝试创建具有无效尺寸的 BitmapData(不太可能,因为它在您的其他构建中工作并且图像是在编译时获取的)或者 Flash 最有可能的情况内存不足,无法创建 BitmapData(移动设备的内存通常比 PC 少得多)。

于 2011-08-27T22:34:52.680 回答