Posts Tagged ‘CircularLibraryDependencyException’

Flash Builder 4, Flex 3 SDK: Export Release Build Error

January 19, 2011

Had to import some Flex 3 projects to Flash Builder 4 (using it in work now), and everything seemed to go ok. Had copied the Flex 3 SDK from FB3 folder, set it as the default in FB4. Cleaned and ran the project (including RSL library projects) all ok. Then went to Export Release Build and got:

Error – One or more errors were found while trying to build the release version. Unable to export.

The Log file (thanks to doc_180 on Stackoverflow) showed the cause as:

java.lang.NoClassDefFoundError: flex2/tool/oem/OEMException$CircularLibraryDependencyException

Log file can be found at the equivalent of C:\Documents and Settings\bbishop\Adobe Flash Builder 4\.metadata

Turns out that 3 files are required by Flex 3 SDK to export a release build in Flash Builder 4 where RSL’s (Library projects) are used, and these are missing. Luckily you can copy these from the Flex 4 SDK.

Let me shout out a thanks to eggsWurzel for his Adobe Forum Post with the solution. Bug is on the Adobe Jira Bug Database

How to implement the solution

  1. Get a copy of flex-compiler-oem.jar from C:\Program Files\Adobe\Adobe Flash Builder 4\sdks\4.1.0\lib
  2. Extract flex-compiler-oem.jar (using Winzip/7 Zip/Winrar), and go to the flex2\tools\oem folder in the extracted files
  3. Look for the following 3 files:
    1. OEMException$CircularLibraryDependencyException.class
    2. OEMException.class
  4. Open Winrar (doesnt work for me with Winzip or 7 Zip), and in the AddressBar browse to the flex-compiler-oem.jar file in the Flex 3 SDK – should beequivalent to C:\Program Files\Adobe\Adobe Flash Builder 4\sdks\3.2.0\lib (make a copy first just in case), and open \flex2\tools\oem
  5. Drag the 3 OEM files over to the \flex2\tools\oem folder in Winrar

That’s it! Close Winrar, and restart Flash Builder 4, should Export a release build ok now:) Nice one.

Note: if using RSL’s you may also need to untick Use local debug runtime shared libraries when debugging from Flex Build Path>Library Path