6

新しいフレックス ヒーロー SDK を使用して、このフレックス アプリケーションを Android で実行するように変換し始めました。モバイルと互換性のないすべてのコンポーネントを既に交換しており、数回正常に動作しています。

元の webapplication を実行している同じライブラリを使用すると、完全に機能します。

ただし、大きな問題は、モバイル アプリケーションの起動中にこれらのランダムな無効な 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)

bitmapData == null。ただし、元の webapplication を実行すると、bitmapData は null ではありません。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 に答える