11

我正在尝试设置一个可以在 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)

到目前为止我所做的:

我能做些什么来解决这个异常?

4

6 回答 6

16

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

./android update sdk -u
于 2013-12-07T01:23:34.987 回答
5

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

但是,带有一些参数,android 可以使用。例如,请参见此处

android create project \
--target <target_ID> \
--name <your_project_name> \
--path path/to/your/project \
--activity <your_activity_name> \
--package <your_package_namespace>
于 2013-06-10T13:36:16.740 回答
1

如果您想运行 Android IDE(即 Eclipse),您将需要一个 X 服务器来显示它。我建议不要尝试在无头服务器上开发 Android 应用程序,因为您将需要一个显示器来使用 IDE,并在模拟器中运行您的应用程序,这样您就可以在不将其闪烁到设备的情况下对其进行测试每次你改变一些东西。

如果您想开发没有 X 显示的应用程序,您将不得不手动完成所有工作,IDE 通常会为您完成,并使用不需要 X 的编辑器,例如vimor emacs

于 2013-06-10T13:31:35.683 回答
1

如果你 ssh -X 进入盒子并启动 android,它应该在你的机器上使用 xserver。有时我必须启动另一个应用程序,例如 Firefox,才能在启动 android 之前让 X 正常工作。

于 2014-06-24T01:45:20.803 回答
0

它看起来像一个旧的日食错误。它与 JavaVM 有关,如果您可以排除问题与 X 环境有关,您可以尝试另一个 VM。

于 2013-07-11T06:59:25.720 回答
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
于 2021-05-30T19:05:14.620 回答