Copy link to clipboard
Copied
Hi,
We're using FlexMojos to build a rather complex AIR application that uses RSLs and Modules.
We successfully created a FlexMojos build with Flex SDK 4.0. We're trying to update to 4.1 (and eventually 4.5).
Running the debug, Flash Builder compiled version of our application, we are able to run successfully with 4.1. However, we are continually running into the attached error with the FlexMojos 4.1 build. [Frankly, getting a release AIR build in either 4.0 or 4.1 from Flash builder has been a nightmare.]
In FlexMojos (as well as the Flash Builder debug build), we are using TLF as an externally linked library. We are using the Adobe libraries in the order in which they're listed in the [SDK]//frameworks/flex-config.xml file, which includes TextLayout at the top of the list.
We're not using anything in the TLF directly in our pared down version that still throws the errors, just a few Spark components that are loading within a Module.
Any help is greatly appreciated. Thanks!
Kirk
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at flashx.textLayout.compose::ParcelList/getParcelAtIndex()
at flashx.textLayout.compose::ParcelList/adjustForScroll()
at flashx.textLayout.compose::ParcelList/beginCompose()
at flashx.textLayout.compose::BaseCompose/initializeForComposer()
at flashx.textLayout.compose::SimpleCompose/initializeForComposer()
at flashx.textLayout.compose::BaseCompose/composeTextFlow()
at flashx.textLayout.compose::SimpleCompose/composeTextFlow()
at FactoryDisplayComposer/http://ns.adobe.com/textLayout/internal/2008::callTheComposer()
at flashx.textLayout.compose::StandardFlowComposer/internalCompose()
at flashx.textLayout.compose::StandardFlowComposer/compose()
at flashx.textLayout.factory::TextFlowTextLineFactory/createTextLines()
at spark.components::RichText/createTextLines()
at spark.components::RichText/http://www.adobe.com/2006/flex/mx/internal::composeTextLines()
at spark.components.supportClasses::TextBase/measure()
at mx.core::UIComponent/measureSizes()
at mx.core::UIComponent/validateSize()
at mx.managers::LayoutManager/validateSize()
at mx.managers::LayoutManager/doPhasedInstantiation()
at mx.managers::LayoutManager/doPhasedInstantiationCallback()
Copy link to clipboard
Copied
I'm sorry you've been having problems. It's hard for me to diagnose accurately without more information, though. Having a line number for the point where its crashing would help, and generally you can get this from the console window. But most likely I will need to be able reproduce the problem here so I can debug it. Is there any chance you could reduce this to a smaller example you could send me or post somethere?
Thanks,
- robin
Copy link to clipboard
Copied
Thanks, Robin.
It seems to be something we're doing with the FlexMojos build of the modules.
I think that we're missing some dependency(-ies), although in sniffing the loaded RSLs, the working version and the non-working version of our pared-down test are loading the same files and in the same order.
I'm not sure if you have any experience with Flex-Mojos, but just to clarify: With our pared-down test, the FlashBuilder-built version works, but the FlexMojos build does not. It seems to be specific to the module (and not the main application SWF), as I can manually swap in the FlashBuilder-built module and it works (with the FlexMojos built main application). And running the application both ways results in the same files being loaded at runtime (except of course for the difference in modules).
Is there more I can do to test the dependencies? I'm compiling and testing on a Mac and sniffing the loading of the dependencies with Instruments.
I've attached the error with more details.
Thanks again,
Kirk
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at flashx.textLayout.compose::ParcelList/getParcelAtIndex()
at flashx.textLayout.compose::ParcelList/adjustForScroll()
at flashx.textLayout.compose::ParcelList/beginCompose()
at flashx.textLayout.compose::BaseCompose/initializeForComposer()
at flashx.textLayout.compose::SimpleCompose/initializeForComposer()
at flashx.textLayout.compose::BaseCompose/composeTextFlow()
at flashx.textLayout.compose::SimpleCompose/composeTextFlow()
at FactoryDisplayComposer/http://ns.adobe.com/textLayout/internal/2008::callTheComposer()
at flashx.textLayout.compose::StandardFlowComposer/internalCompose()
at flashx.textLayout.compose::StandardFlowComposer/compose()
at flashx.textLayout.factory::TextFlowTextLineFactory/createTextLines()
at spark.components::RichText/createTextLines()
at spark.components::RichText/http://www.adobe.com/2006/flex/mx/internal::composeTextLines()
at spark.components.supportClasses::TextBase/measure()
at mx.core::UIComponent/measureSizes()
at mx.core::UIComponent/validateSize()
at mx.managers::LayoutManager/validateSize()
at mx.managers::LayoutManager/doPhasedInstantiation()
at mx.managers::LayoutManager/doPhasedInstantiationCallback()
Copy link to clipboard
Copied
Looks to me like there are some globals that haven't been initialized, which would go along with your guess that something is going wrong with the RSL loading. I'm not conversant with RSL loading issues, so I will have to ask around about this.
Thanks,
- robin
Copy link to clipboard
Copied
OK, the advice I have is that usually if its an RSL related fault, there will be a verify error. Since you aren't seeing one, it seems more likely the problem is not the RSL. Can you try and repro on 4.5? It may be the result of a bug fixed in 4.5. If it still happens in 4.5, and if you can get it down to a relatively small sample program such that we could debug it here, then I think we will be in a better position to help.
Thanks very much,
- robin
Copy link to clipboard
Copied
Thanks again, Robin. It looks like we stumbled upon a FlexMojos regression bug. For the moment, we've reverted back to an earlier version of FlexMojos (FYI, in case anyone else has a similar issue: Flex Mojos 4.0-beta-1 corrected the problem; we had been using Flex Mojos 4.0-SNAPSHOT, which is beta 3+).
Thanks and sorry for the bother.
Kirk