user@AndroidBuilder:~/android_src/out/host/linux-x86/bin$ ANDROID_SWT=/home/user/android_src/prebuilts/tools/linux-x86_64/swt ./android avd
using /home/user/android_src/out/host/linux-x86/framework/sdkmanager.jar:/home/user/android_src/out/host/linux-x86/framework/swtmenubar.jar:/home/user/android_src/prebuilts/tools/linux-x86_64/swt/swt.jar
Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.C.
at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
at org.eclipse.swt.widgets.Display.
at com.android.sdkmanager.Main.showAvdManagerWindow(Main.java:354)
at com.android.sdkmanager.Main.doAction(Main.java:307)
at com.android.sdkmanager.Main.run(Main.java:118)
at com.android.sdkmanager.Main.main(Main.java:101)
I searched high and low, and finally decided to edit the out/host/linux-x86/bin/android script, swapping the classpath order to -classpath "$swtpath/swt.jar:$jarpath" \ (i.e, put the swtpath first). Note from my invocation of the android script that ANDROID_SWT (and therefor $swtpath) is pointing to prebuilts/tools/linux-x86_64/swt. However, if I let the jarpath come first, java wants to use the wrong swt. With this tweak, instead of a stack trace, I get:
It's also annoying to install jdk6 on Ubuntu 12.04. I blame Oracle...