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_displ>>
> 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
>
>