新しいフレックス ヒーロー 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アプリケーションを実行すると、画像を見つけることができるように、モバイルアプリケーションを実行している間、画像を見つけることができないようです。
この問題は何日も私を悩ませてきましたが、特に時々実行されるため、これはバグだと思い始めています。それとも、私がここに欠けているものがありますか。