Search code examples
androidubuntucommand-lineadt

android: Exception in org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]


I'm trying to setup an environment in which I can develop android apps on an Ubuntu server 13.04. Therefore, I can only use the command line.

When I run android, just to check if it's working, I get:

Exception in thread "main" org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.widgets.Display.createDisplay(Unknown Source)
    at org.eclipse.swt.widgets.Display.create(Unknown Source)
    at org.eclipse.swt.graphics.Device.<init>(Unknown Source)
    at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
    at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
    at org.eclipse.swt.widgets.Display.getDefault(Unknown Source)
    at org.eclipse.swt.widgets.Shell.<init>(Unknown Source)
    at org.eclipse.swt.widgets.Shell.<init>(Unknown Source)
    at com.android.sdkuilib.internal.repository.ui.SdkUpdaterWindowImpl2.createShell(SdkUpdaterWindowImpl2.java:168)
    at com.android.sdkuilib.internal.repository.ui.SdkUpdaterWindowImpl2.open(SdkUpdaterWindowImpl2.java:137)
    at com.android.sdkuilib.repository.SdkUpdaterWindow.open(SdkUpdaterWindow.java:111)
    at com.android.sdkmanager.Main.showSdkManagerWindow(Main.java:356)
    at com.android.sdkmanager.Main.doAction(Main.java:334)
    at com.android.sdkmanager.Main.run(Main.java:120)
    at com.android.sdkmanager.Main.main(Main.java:103)

What I've done so far:

  • apt-get install ant
  • Downloaded the "ADT bundle" from http://developer.android.com/sdk/index.html
  • Unpacked it in my home directory /home/camilstaps
  • Added /home/camilstaps/adt-bundle-linux/tools to my PATH environment variable

What can I do to solve this exception?


Solution

  • The problem here was that android tried to open a graphical display, which it couldn't. android simply cannot be runned on a server without a graphical screen.

    However, with some parameters, android can be used. For example, see here:

    android create project \
    --target <target_ID> \
    --name <your_project_name> \
    --path path/to/your/project \
    --activity <your_activity_name> \
    --package <your_package_namespace>