Making the move to Windows 7 Professional 64 brought about a plethora of problems, some minor and some not so minor.
Fortunately most of the troubles were shared with other developers, and information is there to be found using our favourite search engines.
If you’re a Flex developer, like me, you might not have as much luck. If you’ve downloaded the latest (stable) Flex SDK—3.4.1 at the time of this writing—it’s not possible to set up your “Installed Flex SDKs”, in order to set this SDK as the compiler default from the Preferences dialog. That’s because of an issue on current x64 Windows where controls won’t get resized once the nesting hierarchy of windows exceeds a certain depth, which was referred to from the only useful information I could find about this specific issue. It’s also not possible to set many preferences, as certain project properties show up as blank, and certain buttons are missing. It’s absolutely abysmal that Adobe hasn’t remedied these issues; how does it expect developers to do any serious Flex development on 64 bit Windows that’s becoming mainstream?
Fortunately, there is a workaround, at least for the issues that affected me. The solution lies in having a working copy of Flex Builder on a 32-bit Windows platform. Flex stores these preferences in %USERPROFILE%\My Documents\Flex Builder 3\.metadata ( %USERPROFILE% is the environment variable with a typical value of “C:\Documents and Settings\{username}” on Windows XP, and “C:\Users\{username}” on Windows 7), and subfolders therein.
To configure your installed Flex SDKs, first unzip your Flex SDK to “C:\Program Files (x86)\Adobe\Flex Builder 3\sdks” (or wherever it is on your system); there is a file at the top level called flex-sdk-description.xml. Open this up and make a note of the <name> element. Next, open the file “%USERPROFILE%\My Documents\Flex Builder 3\.metadata\.plugins\org.eclipse.core.runtime\.settings\com.adobe.flexbuilder.project.prefs”. This is where you’ll insert the setting for com.adobe.flexbuilder.project.flex_sdks, making sure you use the SDK name noted earlier. My entire file looks like this (without the line breaks before “\r\n”):
#Wed Feb 10 17:49:32 EST 2010 eclipse.preferences.version=1 playerTrustFileCleaned30=true com.adobe.flexbuilder.project.flex_sdks=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<sdks> \r\n<sdk location\="C\:/Program Files (x86)/Adobe/Flex Builder 3/sdks/3.0.0" name\="Flex 3"/> \r\n<sdk defaultSDK\="true" location\="C\:/Program Files (x86)/Adobe/Flex Builder 3/sdks/3.4.1" name\="Flex 3.4"/> \r\n<sdk location\="C\:/Program Files (x86)/Adobe/Flex Builder 3/sdks/2.0.1" name\="Flex 2.0.1 Hotfix 3"/>\r\n</sdks>\r\n flexBuilderVersion=3.0.194161
That fixes the first problem.
My other main problem was that I needed to debug the Flex application, but I was unable to add the launch configuration under Run/Debug Settings of the project properties—the New, Duplicate, Edit, and Delete buttons are missing and cannot be activated via the Windows shortcut keys. If your project is called ProjectX, you’ll need to have a file called “%USERPROFILE%\My Documents\Flex Builder 3\.metadata\.plugins\org.eclipse.debug.core\.launches\ProjectX.launch”. For me, the .launches folder wasn’t there, so I copied it from my 32-bit system. You can create the .launches folder manually, though not from Windows Explorer (you may have to use the command line). My file looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<launchConfiguration type="com.adobe.flexbuilder.debug.launchConfigurationType.flash">
<stringAttribute key="com.adobe.flexbuilder.debug.ATTR_APPLICATION" value="src/ProjectX.mxml"/>
<stringAttribute key="com.adobe.flexbuilder.debug.ATTR_DEBUG_URL" value="http://localhost/abcde"/>
<stringAttribute key="com.adobe.flexbuilder.debug.ATTR_PROFILE_URL" value="C:\Projects\ProjectX\bin-debug\ProjectX.html"/>
<stringAttribute key="com.adobe.flexbuilder.debug.ATTR_PROJECT" value="ProjectX"/>
<stringAttribute key="com.adobe.flexbuilder.debug.ATTR_RUN_URL" value="C:\Projects\ProjectX\bin-debug\ProjectX.html"/>
<booleanAttribute key="com.adobe.flexbuilder.debug.ATTR_USE_DEFAULT_URLS" value="false"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/ProjectX"/>
<listEntry value="/ProjectX/src/ProjectX.mxml"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
<listEntry value="1"/>
</listAttribute>
</launchConfiguration>
For any other properties, you can search for a relevant string in the .metadata folder of your 32-bit machine, then copy or create the appropriate file in your 64-bit system. It’s a pain, but at least you’ll be able to get your work done.
This is ridiculous… I’m having the same problems and it’s infuriating. Have these problems been fixed by Adobe yet?
Comment by newFlexDev — March 6, 2010 @ 9:12 am
They have been fixed in Flash Builder, though that’s still in beta.
Another workaround in Windows 7 is to use Windows XP Mode under Windows Virtual PC. But then you have to make compromises – compilation becomes slower, and editing suffers because the scroll button on my pointing device no longer works.
Comment by admin — March 6, 2010 @ 9:33 am
I too, had the lack of Add button in the “Installed Flex SDK” window. I am running Flex on a newer Dell Lattitude E4300 with windows 7 Pro. It appears that SetPoint32.exe runs in the background regardless if you have installed some sort of Logitich device (since I don’t have any Logiteck stuff hooked up, unless it is my dell mouse and maybe its Logiteck under the hood..). As soon as I killed the SetPoint32 process using task manager, I had a button. Hope it helps someone…
Comment by Frank — March 16, 2010 @ 1:53 pm
I have experienced the same issue. However, some other collegues who have the same 64 bit OS and same hardware doesn’t have any problem. Not sure why
Comment by Jimmy — April 8, 2010 @ 1:21 pm
Another strange thing is that I had to restore a factory image of my HDD onto an SSD (after my HDD had failed), and I re-installed Flex Builder 3 just yesterday – the problems no longer exist for me, and my hardware is the same except for the SSD.
I also have a colleague with 64-bit Windows 7, and he doesn’t have these problems.
Comment by admin — April 8, 2010 @ 1:44 pm
Definitely check for SetPoint – if you have Logitech (maybe others?) devices and you see the battery status icon in the notification tray, that is SetPoint.
I had a fresh install of Flex Builder 3 on Windows 7 Ultimate 64-bit and there were many strange things like combo boxes that would scroll and not let me click an item, missing input areas, etc. Exiting SetPoint corrected all those issues.
There is an update to SetPoint 6.00 for 64-bit, check out Logitech’s site for compatibility.
Probably not the only source of problems, but it cleared up 100% of the issues I was having.
Comment by Kevin — April 21, 2010 @ 2:57 pm
It appears that SetPoint32.exe runs in the background regardless if you have installed some sort of Logitich device. This worked for me as well. Killed all three logitec processes. setpoint.exe setpoint.exe*32 and KHALMNPR.exe.
Comment by tc — May 4, 2010 @ 4:42 pm