Return-Path: X-Original-To: apmail-flex-users-archive@www.apache.org Delivered-To: apmail-flex-users-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id EDE5AF061 for ; Wed, 17 Apr 2013 22:18:25 +0000 (UTC) Received: (qmail 86849 invoked by uid 500); 17 Apr 2013 22:18:25 -0000 Delivered-To: apmail-flex-users-archive@flex.apache.org Received: (qmail 86819 invoked by uid 500); 17 Apr 2013 22:18:25 -0000 Mailing-List: contact users-help@flex.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@flex.apache.org Delivered-To: mailing list users@flex.apache.org Received: (qmail 86811 invoked by uid 99); 17 Apr 2013 22:18:25 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Apr 2013 22:18:25 +0000 X-ASF-Spam-Status: No, hits=2.5 required=5.0 tests=FRT_ADOBE2,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of mbaird@kairyt.com designates 209.85.223.181 as permitted sender) Received: from [209.85.223.181] (HELO mail-ie0-f181.google.com) (209.85.223.181) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Apr 2013 22:18:18 +0000 Received: by mail-ie0-f181.google.com with SMTP id tp5so142506ieb.26 for ; Wed, 17 Apr 2013 15:17:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:content-type:x-gm-message-state; bh=+rEgI9f4KvpD0wFGGAygLT6ZtbCqnb3w2LStn+iNmgw=; b=glC+vEMBK4nsNNezscZwMgE5p0QE798ZjEyyg/LAc2wAH0KmO/99KV33d+2KqlM8Vl 1pH/ohmg62Q6Dd+b2/v8oZPBijYkisHhMRFMNRee365mi2BnSlrbpU+WNF7UFeDevDR7 +okVReowJhBsp/62D4yRTCIhOgQZKWB9Pp1/x6rw1FiwG53vA0HvV3qeB/EUNBHFenZG qjObdFQFfvL0DSGUQs12u8gQVVfE3hKt0sFq/nC8sJ60GUQzJ9dkc7Tav5mkIPu+YNTW dyLSbHOD27vHDOFJlScfMdFDdEjYgLGPiamBSAeSD3+KsSr2L+xXoy5dEjHdiA5MlFKI mWYQ== X-Received: by 10.50.236.42 with SMTP id ur10mr5362299igc.16.1366237076944; Wed, 17 Apr 2013 15:17:56 -0700 (PDT) MIME-Version: 1.0 Received: by 10.50.112.41 with HTTP; Wed, 17 Apr 2013 15:17:36 -0700 (PDT) In-Reply-To: References: From: Michael Baird Date: Wed, 17 Apr 2013 15:17:36 -0700 Message-ID: Subject: Re: Application issues building through Ant To: users@flex.apache.org Content-Type: multipart/alternative; boundary=14dae9340c83a6941104da95db76 X-Gm-Message-State: ALoCoQlPMiReVa3jT82OJrEcvbymTVkRpp7Q5jaSH7NB+Mh1D77PMW6rx2bV0PkKMGVEqslHU0zO X-Virus-Checked: Checked by ClamAV on apache.org --14dae9340c83a6941104da95db76 Content-Type: text/plain; charset=ISO-8859-1 Understood. It's a pretty simple skin, anyway - just extends mx.skins.halo.LinkButtonSkin and overrides *updateDisplayList* to make some graphics calls (at one point it checks parent.tabIndex, which is where the NPE occurs). I created a copy of the default flex-config and moved the contents of the library-path to external-library-path (except for the player reference in library path) [1]. I think there must be another step I am missing, because now the application fails to load: Loading library VerifyError: Error #1014: Class mx.core::Application could not be found. at flash.display::MovieClip/nextFrame() at mx.managers::SystemManager/deferredNextFrame()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/managers/SystemManager.as:286] at mx.managers::SystemManager/preloader_preloaderDocFrameReadyHandler()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/managers/SystemManager.as:2635] at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at mx.preloaders::Preloader/timerHandler()[/Users/justinmclean/Documents/ApacheFlexSDK/frameworks/projects/framework/src/mx/preloaders/Preloader.as:523] at flash.utils::Timer/_timerDispatch() at flash.utils::Timer/tick() Sorry for the back and forth. Hoping there's an easy solution just over the horizon =) [1] http://pastebin.com/EAkZDUkW On Wed, Apr 17, 2013 at 12:56 PM, Alex Harui wrote: > 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" 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 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" 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:\\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: > >>> >>> failonerror="true" > >>> fork="true"> > >>> > >>> > >>> >>> value='-local-fonts-snapshot=${FLEX_HOME}/frameworks/localFonts.ser'/> > >>> > >>> >>> value='-theme=${FLEX_HOME}/frameworks/themes/Halo/halo.swc'/> > >>> > >>> > >>> > >>> > >>> > >>> Then the main application target: > >>> >>> failonerror="true" > >>> fork="true"> > >>> > >>> > >>> >>> value='-local-fonts-snapshot=${FLEX_HOME}/frameworks/localFonts.ser'/> > >>> > >>> >>> value='-theme=${FLEX_HOME}/frameworks/themes/Halo/halo.swc'/> > >>> > >>> > >>> > >>> value='-external-library-path=${build.dir}/common.swc'/> > >>> >>> value='-runtime-shared-libraries=${swiz-framework-v1.4.0.swf}'/> > >>> > >>> > >>> value='-runtime-shared-libraries=${campaign_common.swf}'/> > >>> >>> value='-external-library-path+=${build.dir}/campaign_common.swc'/> > >>> value='-runtime-shared-libraries=${synchronization.swf}'/> > >>> >>> value='-external-library-path=${build.dir}/synchronization.swc'/> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> (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 > 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. > >>>> >>>> failonerror="true" > >>>> fork="true"> > >>>> > >>>> > >>>> >>>> value='-local-fonts-snapshot=${FLEX_HOME}/frameworks/localFonts.ser'/> > >>>> >>>> value='-load-config=${FLEX_HOME}/frameworks/flex-config.xml'/> > >>>> >>>> value='-theme=${FLEX_HOME}/frameworks/themes/Halo/halo.swc'/> > >>>> value='-external-library-path+=${build.dir}/core.swc'/> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> (core being another of our libraries) > >>>> > >>>> > >>>> On Tue, Apr 9, 2013 at 12:12 PM, Alex Harui wrote: > >>>> > >>>>> > >>>>> > >>>>> > >>>>> On 4/9/13 10:41 AM, "Michael Baird" 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 > 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" 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: > >>>>>>>> >>>>>>>> depends="client"> > >>>>>>>> >>>>>>>> failonerror="true" > >>>>>>>> fork="true"> > >>>>>>>> > >>>>>>>> > >>>>>>>> >>>>>>>> > value='-local-fonts-snapshot=${FLEX_HOME}/frameworks/localFonts.ser'/> > >>>>>>>> >>>>>>>> value='-load-config=${FLEX_HOME}/frameworks/flex-config.xml'/> > >>>>>>>> >>>>>>>> value='-theme=${FLEX_HOME}/frameworks/themes/Halo/halo.swc'/> > >>>>>>>> > >>>>>>>> > >>>>>>>> >>>>> value='-external-library-path=${build.dir}/core.swc'/> > >>>>>>>> > >>>>>>>> >>>>> value='-external-library-path=${build.dir}/common.swc'/> > >>>>>>>> value='-runtime-shared-libraries=${charting.swf}'/> > >>>>>>>> >>>>>>> value='-external-library-path=${build.dir}/charting.swc'/> > >>>>>>>> >>>>>>>> > value='-file-specs=${lib.dashboard}/${view.dir}/DashboardView.mxml'/> > >>>>>>>> >>>>>>>> value='-output=${build.dir}/${view.dir}/DashboardView.swf'/> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> 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 > > --14dae9340c83a6941104da95db76--