Hi Michael, Attachments aren't supported on the mailing list. The warning could be related. It is probably best to specify dependent swcs via external-library-path and make sure all of those swcs or rsls are otherwise in the application.
On 4/17/13 12:20 PM, "Michael Baird" <[email protected]> wrote: > Thanks for helping with this, Alex. I think I'm getting a little closer. I've > switched to using mxmlc/compc AntTasks and I can load the main application and > the submodules now. > > I have, however, some Flex 3 skin(s) that seem to be failing at runtime. > Unlike before, this happens with the ant-built application as well as the > FlashBuilder-built application. I've attached my skin, which is throwing a NPE > at line 41, implying parent is null. I've tried checking for parent == null > and returning, and I also wrapped the whole thing in a try/catch, but the same > error keeps getting thrown. > > In dealing with this skin issue, I've tried adding isolate-styles=false as > well > as runtime-shared-library-settings.application-domain application-domain-targe > t="top-level" for all my custom libraries, to no apparent effect. > > I generated a link-report for my style resource SWF and it does include a link > to the LinkButtonSkin, so I think that's okay. > > When compiling the libraries, I do get this interesting warning (it is > repeated for SDK mx.swc and charts.swc), that may or may not be related. It's > coming from the flex-config xml. > [compc] Warning: The swc > 'C:\Apache\Flex\4.9.1\frameworks\libs\framework.swc' has style defaults and is > in the library-path, which means dependencies will be linked in without the > styles. This can cause applications, which use the output swc, to have > missing skins. The swc should be put in the external-library-path. > > Any thoughts here are much appreciated. > > > On Tue, Apr 16, 2013 at 8:22 PM, Alex Harui <[email protected]> wrote: >> From that output, if I'm interpreting it correctly, core.swc loads, then >> common.swc. Common.swc seems to have a dependency on Button, which hasn't >> been loaded yet since only core has been loaded. >> >> Should common.swc have a dependency on Button? If so, you will need to load >> mx.swc beforehand. I think the compiler/linker is smart enough not to >> request loading of RSLs that aren't used by the application. But then if >> your custom RSL needs Button the compiler/linker doesn't know that. >> >> >> On 4/16/13 5:06 PM, "Michael Baird" <[email protected]> wrote: >> >>> I've analyzed the link-report and also checked out the catalog XML. >>> >>> The main library, which gets compiled as core.swc and then treated as an >>> external-library (+ rsl) by all the other targets, has a catalog.xml that >>> contains references to mx.controls:Button. I had the main application >>> target generate a link-report and that also contains references to the >>> mx.controls:Button class. >>> >>> So the linkage "appears" to be correct according to these reports. >>> >>> I tried to change the main application target to use >>> -library-path+=core.swc instead of -external-library-path, but that >>> resulted in no change. >>> >>> Fun fact: I added a custom debug config to FlashBuilder and launched the >>> application. Here's the console result: >>> >>> [SWF] C:\<path>\oneplace_client.swf - 1,869,468 bytes after decompression >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> Loading library >>> [SWF] /core.swf - 1,612,732 bytes after decompression >>> Loading library >>> Loaded library 0 of 5 >>> Loading library >>> [SWF] /common.swf - 1,203,976 bytes after decompression >>> VerifyError: Error #1014: Class mx.controls::Button could not be found. >>> >>> Could I be missing a step to generate a valid RSL for the libraries (e.g. >>> addressing the *VerifyError*)? Here is my *core* library target: >>> <java jar="${compc.jar.path}" >>> failonerror="true" >>> fork="true"> >>> <jvmarg value="-Xmx512m"/> >>> <arg value='-debug=${debug}'/> >>> <arg >>> value='-local-fonts-snapshot=${FLEX_HOME}/frameworks/localFonts.ser'/> >>> <arg value='-load-config=${flex.config}'/> >>> <arg >>> value='-theme=${FLEX_HOME}/frameworks/themes/Halo/halo.swc'/> >>> <arg value='-source-path+=${lib.core}'/> >>> <arg value='-include-sources=${lib.core}'/> >>> <arg value='-output=${build.dir}/core.swc'/> >>> </java> >>> >>> Then the main application target: >>> <java jar="${mxmlc.jar.path}" >>> failonerror="true" >>> fork="true"> >>> <jvmarg value="-Xmx512m"/> >>> <arg value='-debug=${debug}'/> >>> <arg >>> value='-local-fonts-snapshot=${FLEX_HOME}/frameworks/localFonts.ser'/> >>> <arg value='-load-config=${flex.config}'/> >>> <arg >>> value='-theme=${FLEX_HOME}/frameworks/themes/Halo/halo.swc'/> >>> <arg value='-runtime-shared-libraries=${core.swf}'/> >>> <arg value='-external-library-path=${build.dir}/core.swc'/> >>> <arg value='-runtime-shared-libraries=${common.swf}'/> >>> <arg value='-external-library-path=${build.dir}/common.swc'/> >>> <arg >>> value='-runtime-shared-libraries=${swiz-framework-v1.4.0.swf}'/> >>> >>> <!-- CampaignWrapper Libs BEGIN --> >>> <arg value='-runtime-shared-libraries=${campaign_common.swf}'/> >>> <arg >>> value='-external-library-path+=${build.dir}/campaign_common.swc'/> >>> <arg value='-runtime-shared-libraries=${synchronization.swf}'/> >>> <arg >>> value='-external-library-path=${build.dir}/synchronization.swc'/> >>> <arg value='-source-path+=${lib.campaign}'/> >>> <!-- CampaignWrapper Libs END --> >>> >>> <arg value='-file-specs=${app.main}/${client.name >>> <http://client.name> }.mxml'/> >>> <arg value='-output=${build.dir}/${client.name >>> <http://client.name> }.swf'/> >>> <arg value='-link-report=${build.dir}/report.xml'/> >>> </java> >>> >>> (Note: those are all custom SWCs I'm treating as RSLs/external-libraries. >>> The Flex ones are loaded - or supposed to be loaded - through the >>> -load-config argument.) >>> >>> Any further ideas are greatly appreciated! >>> >>> >>> >>> On Tue, Apr 9, 2013 at 12:22 PM, Michael Baird <[email protected]> wrote: >>> >>>> I'll check out the link-report and see what's going on. The main >>>> application MXML target is generating one, which is used for the modules >>>> through load-externs. >>>> >>>> The externals indicated by the module target I provided are some of our >>>> common libraries that are built as SWCs earlier in the script. The Flex >>>> ones are only included through flex-config. >>>> e.g. >>>> <java jar="${compc.jar.path}" >>>> failonerror="true" >>>> fork="true"> >>>> <jvmarg value="-Xmx512m"/> >>>> <arg value='-debug=${debug}'/> >>>> <arg >>>> value='-local-fonts-snapshot=${FLEX_HOME}/frameworks/localFonts.ser'/> >>>> <arg >>>> value='-load-config=${FLEX_HOME}/frameworks/flex-config.xml'/> >>>> <arg >>>> value='-theme=${FLEX_HOME}/frameworks/themes/Halo/halo.swc'/> >>>> <arg value='-external-library-path+=${build.dir}/core.swc'/> >>>> <arg value='-runtime-shared-libraries=${core.swf}'/> >>>> <arg value='-source-path+=${lib.common}'/> >>>> <arg value='-include-sources=${lib.common}'/> >>>> <arg value='-output=${build.dir}/common.swc'/> >>>> </java> >>>> >>>> (core being another of our libraries) >>>> >>>> >>>> On Tue, Apr 9, 2013 at 12:12 PM, Alex Harui <[email protected]> wrote: >>>> >>>>> >>>>> >>>>> >>>>> On 4/9/13 10:41 AM, "Michael Baird" <[email protected]> wrote: >>>>> >>>>>> Okay, I understand the Sprite issue might be something wrong with our >>>>>> resource builder (yes, embedded assets and css compiled into a resource >>>>> SWF >>>>>> so I'll look for misconfigurations there). >>>>>> >>>>>> Shouldnt mx.controls.Button be included through the standard >>>>> flex-config or >>>>>> is that getting messed up because of the module externals? >>>>> Flex-config directs compile-time. It must be "ok" since you are getting >>>>> SWFs and then run-time errors. It is options like -external-library-path >>>>> that cause the linker to exclude classes, which is what you want, but then >>>>> you have to make sure they get loaded and loaded correctly. >>>>>> >>>>>> Do you happen to know what/how this changed from 4.1 to now? This same >>>>>> build script is working with SDK 4.1.0. >>>>> I don't know off-hand. It is possible that we got better at not requiring >>>>> mx components in spark apps. A link-report will tell you what classes are >>>>> ending up where. >>>>> >>>>> BTW, did you obfuscate the SWC names? I don't recognize common and >>>>> charting >>>>> as Flex SWCs. If you custom built these SWCs then there might be an issue >>>>> with what classes are in it. A SWC is a zip file and in it is a >>>>> catalog.xml >>>>> which is like a link-report: it tells you which classes are in the SWC. >>>>>> >>>>>> >>>>>> On Mon, Apr 8, 2013 at 9:16 PM, Alex Harui <[email protected]> wrote: >>>>>> >>>>>>> The -external-library-path options are forcing certain classes to not >>>>> be >>>>>>> linked into the SWF, but those classes are not being loaded into the >>>>>>> ApplicationDomain tree in a way that SWF can access it or aren't being >>>>>>> loaded at all. >>>>>>> >>>>>>> The XXXX_flash.display_Sprite class is probably an embedded asset and >>>>> not >>>>>>> an >>>>>>> actual Flash Player class. >>>>>>> >>>>>>> >>>>>>> On 4/8/13 5:41 PM, "Michael Baird" <[email protected]> wrote: >>>>>>> >>>>>>>> I have a large application with multiple shared libraries and >>>>> sub-modules >>>>>>>> that I'm trying to build through Ant and I'm running into issues... >>>>>>> hoping >>>>>>>> someone here can help. >>>>>>>> >>>>>>>> I'm currently targeting the latest AF release - 4.9.1 - and running >>>>> into >>>>>>> an >>>>>>>> issue where when I launch the Ant-built application, I receive one >>>>> Flash >>>>>>>> exception: >>>>>>>> VerifyError: Error #1014: Class mx.controls::Button could not be >>>>> found. >>>>>>>> then another: >>>>>>>> ReferenceError: Error #1065: Variable >>>>>>>> >>>>>>> >>>>> >>>>> _88d866d22da27af4b5978eeb7ebb39d5d661776417e03b75890d49335a9fed4d_flash_di >>>>> sp >>>>> l>> >>>>> a >>>>>>>> y_Sprite >>>>>>>> is not defined. >>>>>>>> >>>>>>>> This seems to indicate that the Flash player is not being included >>>>>>> somehow >>>>>>>> but I can't figure out why! >>>>>>>> >>>>>>>> Here is an example of one of my module targets: >>>>>>>> <target name="dashboard" >>>>>>>> depends="client"> >>>>>>>> <java jar="${mxmlc.jar.path}" >>>>>>>> failonerror="true" >>>>>>>> fork="true"> >>>>>>>> <jvmarg value="-Xmx512m"/> >>>>>>>> <arg value='-debug=${debug}'/> >>>>>>>> <arg >>>>>>>> value='-local-fonts-snapshot=${FLEX_HOME}/frameworks/localFonts.ser'/> >>>>>>>> <arg >>>>>>>> value='-load-config=${FLEX_HOME}/frameworks/flex-config.xml'/> >>>>>>>> <arg >>>>>>>> value='-theme=${FLEX_HOME}/frameworks/themes/Halo/halo.swc'/> >>>>>>>> <arg value='-source-path+=${lib.dashboard}'/> >>>>>>>> <arg value='-runtime-shared-libraries=${core.swf}'/> >>>>>>>> <arg >>>>> value='-external-library-path=${build.dir}/core.swc'/> >>>>>>>> <arg value='-runtime-shared-libraries=${common.swf}'/> >>>>>>>> <arg >>>>> value='-external-library-path=${build.dir}/common.swc'/> >>>>>>>> <arg value='-runtime-shared-libraries=${charting.swf}'/> >>>>>>>> <arg >>>>>>> value='-external-library-path=${build.dir}/charting.swc'/> >>>>>>>> <arg >>>>>>>> value='-file-specs=${lib.dashboard}/${view.dir}/DashboardView.mxml'/> >>>>>>>> <arg >>>>>>>> value='-output=${build.dir}/${view.dir}/DashboardView.swf'/> >>>>>>>> <arg value='-load-externs=${build.dir}/report.xml'/> >>>>>>>> </java> >>>>>>>> </target> >>>>>>>> >>>>>>>> FLEX_HOME is defined earlier in the build script as the path to the >>>>> 4.9.1 >>>>>>>> base directory. >>>>>>>> >>>>>>>> I have also tried using anttasks, and that is working a little better >>>>>>>> except when I load a module with charts - then I get another missing >>>>>>> class: >>>>>>>> VerifyError: Error #1014: Class mx.charts::CategoryAxis could not be >>>>>>> found. >>>>>>>> >>>>>>>> So overall it seems like I'm having linking issues, but I'm using >>>>> stock >>>>>>>> flex-configs that look like they are including the right libraries in >>>>> the >>>>>>>> right places. >>>>>>>> >>>>>>>> Any help is appreciate... thanks =) >>>>>>> >>>>>>> -- >>>>>>> Alex Harui >>>>>>> Flex SDK Team >>>>>>> Adobe Systems, Inc. >>>>>>> http://blogs.adobe.com/aharui >>>>>>> >>>>>>> >>>>> >>>>> -- >>>>> Alex Harui >>>>> Flex SDK Team >>>>> Adobe Systems, Inc. >>>>> http://blogs.adobe.com/aharui >>>>> >>>>> >>>> >> >> -- >> Alex Harui >> Flex SDK Team >> Adobe Systems, Inc. >> http://blogs.adobe.com/aharui >> > > -- Alex Harui Flex SDK Team Adobe Systems, Inc. http://blogs.adobe.com/aharui
