Flex project migration to 3.4 SDK - apache-flex

I migrate from 3.0 to 3.4 SDK and see the following bug in my flex project
VerifyError: Error #1053: Illegal override of FlexModuleFactory in mx.core.FlexModuleFactory.
How can I fix it
best
Vladimir

One of two things you are either trying to load a SWF that isn't a module as a module or you are loading a Module compiled with a different version of the SDK from the SWF doing the loading.
Make sure that the Module you are loading is also compiled with Flex 3.4. Cross SDK version support is not available in Module loading. If you need that functionality get all the loaded SWFs ( sub-applications ) up to Flex 3.3, then you can change the SDK version of the loading application ( parent application ) to whatever flex version you want. Read up on the Marhshall Plan for more information about sub-application loading.
-d

I'm getting the same error on a project. I suspect is has to do with a swc being compiled with an older version of Flex (say 3.2). I've seen similar issues discussed online with PaperVision. Unfortunately our project hasn't moved to 3.4 completely yet so I've not had time to recompile our various swc's to see if that fixes the the issue.

Related

FlexVersion compatibility has already been read - _NOT_ Flex 3 to Flex 4 issue

To be clear, this code was working for many years using Flex 4.5.1. As such, this is not answered by; Error migrating Flex 3 to Flex 4
I am bulk generating Font CSS SWF in Flash Builder. There are nearly 700 of them, so I cannot do it in my main project, but have a related project to do so. Both projects are compiled using the same SDK (I have tried 4.6.0 (Adobe), 4.12.0 (Apache Flex), 4.13.0 (Apache Flex)).
However, since upgrading to 4.6+ from 4.5.1, I can no longer import fonts on demand as they immediately trigger Error: Compatibility version has already been read. error on load.
Can anybody direct me to a workaround for this? Or explain what causes compatibility version to be written on load of SWF?
See my comment above. This was resolved to inconsistent SDK in a complex build environment. Once everything matched (exactly) the issue disappeared.

Loading an older version SWF by a newer version SWF

I have an Action Script project made with Flash Builder 4.7 and the AIR SDK 3.7. I want to load the swf that is packaged inside an AIR file created with Flash Builder 4 and the Flex SDK 3.5. I managed but its scaled about 300% and its shifted to the right too leaving a huge white border on its left side.
I read the following in http://help.adobe.com/en_US/air/build/WSfffb011ac560372f2fea1812938a6e463-8000.html#WSfffb011ac560372f2fea1812938a6e463-7fff:
When loading a SWF file of a different version than the loading content, you can run into the two problems:
-Loading a newer version SWF by an older version SWF— References to APIs added in the newer versions of AIR and Flash Player in the loaded content will be unresolved
-Loading an older version SWF by a newer version SWF — APIs changed in the newer versions of AIR and Flash Player may behave in ways that the loaded content does not expect.
I think the second is my case. My initial problem is described in http://mabulous.com/de/air-applications-that-can-be-updated-without-requiring-admin-rights and the solution worked for me only to lead to this new problem. Any ideas please?

Upgrading Flex from 3.2 to 4.5 - Errors and Warnings

I've inherited a large codebase written primarily in Flex 3.2 using Parsley and Cairngorm.
The entire build process is done through maven using FlexMojos.
I'm relatively new to Flex and I've been told to upgrade Flex from 3.2 to the latest 4.5.1 version.
While I have made a good progress, I have run into some errors that are beyond my understanding or Google search has not been able to help.
Things I have done:
Changed all namespaces to mxml 2009 and fx.
Put all non-visual components in fx:declarations.
Added namespaces in my stylesheet
Upgraded version of FlexMojos to 3.9 - not 4 because there isn't a stable version yet
Upgrade all cairngorm dependencies to the Flex 4 dependencies, although keeping the same versions.
Exclusively declared that the theme I want to use in the compiler settings is halo.swc
Fixed a lot of compilation warnings and errors which were trivial.
Things I don't know how to fix:
While compiling, I get a lot of warnings with regards to CSS.
An example of warning I get is the following:
[WARNING] C:\repo\com\adobe\flex\framework\framework\4.0.0.14159\framework-4.0.0.14159.swc$defaults.css:[487,-1]
The style 'dropShadowVisible' is only supported by type
'mx.controls.List' with the theme(s) 'spark'.
For a start, I'm not using 4.0.014159, although something's telling me that the dependency is being pulled through a Cairngorm library such as validation or module.
If so, any solutions to that?
Additional warnings I get which I don't understand how to fix are the following:
[WARNING] The swc
'C:\repo\com\adobe\flex\framework\framework\4.5.1.21328\framework-4.5.1.21328.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.
Regarding the above, I read somewhere that the swc file has to be loaded as an external library path instead. I did that but the warning didn't go away.
Finally, the app fails to compile as a result of these errors.
[ERROR]
C:\repo\com\adobe\flex\framework\mx\4.5.1.21328\mx-4.5.1.21328.swc$defaults.css:[469,-1]
Invalid Embed directive in stylesheet - can't resolve source
'Embed(source = "assets/CalendarIcon.png")'.
There's no reference of the CalendarIcon.png asset in my codebase. Google pointed me out to this http://python.mmitd.com/bugs.adobe.com/jira/browse/SDK-22746, but I'm afraid nothing I've done worked.
As you can see the majority of my warnings/errors (at least for now) lie around default.css warnings.
Any help will be greatly appreciated!
Flex compiler, by default uses a css, which is named as "defaults.css". If you have the css named as "defaults.css", change the name of it.
It will also look for flex-config, which should be same as application name or it will take a default flex-config from the sdk folder. There are couple of css properties, which are only available in Flex 3 components. Now as we have the Spark component architecture in place, few properties may not work at all and give you warning messages.
If you have Flash Builder installed on your machine, you can import your project in it and go through the warning messages one at a time and fix your .css file.
Hope it helps you somewhat in resolving the problems..

Trouble compiling flashbuilder project with sdk 3.*

I have a series of projects that we have been using Flex3/Flashbuilder to work with, but I've recently been trying to move over to Flashdevelop for most of my development but I have hit a snag with a certain project structure that Flex/FB can handle but FD/mxmlc can't with sdk 3.*
What I have is something like this:
project_root/
/src
/resources
The resources in flex is added as a class path to the project and I am embedding images like this: [Embed(source="/wardrobe.png")]
This all works fine in Flex/FB but FD I get there errors for all my images :
Error:unable to resolve '/wardrobe.png' for transcoding
Error:unable to transcode /wardrobe.png
This problem don't occur when I'm using the Flex 4 sdk, but for these projects I require 3.2. If anyone has any idea of what these projects won't build and a way to make them work outside of Flex/FB that would be great.
Good news:
there is a reason why the Flex 3 SDK does not resolve embeds in the entire classpath but only the class' one.
Bad news:
it's a bug which is not going to be fixed in Flex 3 SDK (it's ok in Flex 4 SDK).
As a matter of fact, both FlashBuilder and Maven Flexmojos use a workaround (they inject a custom "resource resolver" in the compiler).
Solution:
The best you can do is to fix embed paths like: "/../resources/wardrobe.png" (the starting "/" makes the path relative to the class' classpath root).
try cleaning the project
i don't know where in flex builder but in eclipse it in Project>Clean
then build again the project..

ActionScript error #1053 - Illegal override of allowInsecureDomain in _MonkeyContacts_mx_managers_SystemManager (FlexMonkey code generation example)

I'm following along the MonkeyContactsCodeGenExample guide and when I run the ant target for test-with-launcher, I get a popup saying:
VerifyError: Error #1053: Illegal override of allowInsecureDomain in _MonkeyContacts_mx_managers_SystemManager.
This is followed by:
ReferenceError: Error #1065: Variable _MonkeyContacts_mx_managers_SystemManager is not defined.
These popups are from the debug flash player - the normal flash player would silently supress these errors.
It seems that these sorts of errors occur when different files or swc components are compiled under different SDKs. If so, what parts would I need to recompile in this situation?
I checked out the flex project sources and have rebuilt them under SDK 3.4, and I also got the project sources for fluint and have recompiled those already. The newly compiled fluint.swc was then copied to the lib directories of the MonkeyFluintAirTestRunner and MonkeyTestLauncher projects and then everything was re-built, but I still get this error with the MonkeyContacts example.
I just ran into this myself today. I just needed to recompile the MonkeyAgent.SWF.
As per a note on the FlexMonkey site, I used the Easy2BuildMonkeyAgent project to do this. I didn't look into why they recommended this, but it worked for me.
Beware, I ran into a problem compiling this because I use the standard 3.4 SDK that was installed separate from Flex Builder. The the standard 3.4 SDK, the automation.swc file (and others) aren't there, so I had to grab copies from the FlexBuilder 3.0 SDK folder into the 3.4.
Don't forget to copy the corresponding files from locale/en_US: automation_agent_rb.swc, automation_rb.swc

Resources