android:org.eclipse.swt.SWTError中的异常:不再处理[gtk_init_check()失败]

时间:2013-06-10 13:15:19

标签: android ubuntu command-line adt

我正在尝试设置一个可以在Ubuntu 服务器 13.04上开发Android应用程序的环境。因此,我只能使用命令行。

当我运行android时,为了检查它是否正常工作,我得到:

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)

到目前为止我做了什么:

  • apt-get install ant
  • http://developer.android.com/sdk/index.html
  • 下载“ADT套装”
  • 在我的主目录/home/camilstaps
  • 中解压缩
  • 在我的/home/camilstaps/adt-bundle-linux/tools环境变量
  • 中添加了PATH

我该怎么做才能解决这个例外?

6 个答案:

答案 0 :(得分:16)

您可以使用-u(无用户界面)选项从命令行更新sdk。

./android update sdk -u

答案 1 :(得分:5)

这里的问题是android试图打开图形显示,但它不能。 android根本无法在没有图形屏幕的服务器上运行。

但是,对于某些参数,可以使用android 。例如,请参阅here

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

答案 2 :(得分:1)

如果您想运行Android IDE(即Eclipse),您将需要一台X服务器来显示它。我建议不要尝试在无头服务器上开发Android应用程序,因为您需要一个显示器来使用IDE,并在模拟器中运行您的应用程序,以便您可以测试它而无需将其刷新到设备每当你改变一些东西。

如果您想在没有X显示的情况下开发应用程序,那么您将不得不手动完成所有操作(IDE通常会为您执行此操作),并使用不需要X的编辑器,例如{ {1}}或vim

答案 3 :(得分:1)

如果你在框中输入-X并启动android,它应该在你的机器上使用xserver。有时我必须开始另一个应用,例如Firefox启动android之前让X工作。

答案 4 :(得分:0)

它看起来像是一个古老的臭虫。它与JavaVM相关,如果您可以排除该问题与X环境相关,则可以尝试使用另一个VM。

答案 5 :(得分:0)

就我而言,我尝试安装 GTK 包(使用 'sudo apt-get install'),但仍然反复出现错误。

要识别错误,请检查日志路径:/configuration/*.log

您会注意到错误日志中存在的堆栈跟踪强调了与显示相关的问题。 Eclipse 需要启动 X 服务器才能正确加载用户界面。默认情况下,root 用户不会启动 X-server。

因此我切换到另一个用户并且能够成功打开eclipse。

root@anotheruser:/eclipse/configuration# exit
logout
anotheruser@anotheruser:~$ cd /eclipse/
anotheruser@anotheruser:/eclipse$ ./eclipse