android:org.eclipse.swt.swt中出现异常恐怖:不再有句柄[gtk_init_check()失败]
我正在尝试建立一个环境,在这个环境中我可以在Ubuntu服务器13.04上开发android应用程序。因此,我只能使用命令行 当我运行android时,为了检查它是否工作,我得到:android:org.eclipse.swt.swt中出现异常恐怖:不再有句柄[gtk_init_check()失败],android,ubuntu,command-line,adt,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.ecli
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)
线程“main”org.eclipse.swt.swt中出现异常:不再有句柄[gtk_init_check()失败]
位于org.eclipse.swt.swt.error(未知源)
位于org.eclipse.swt.widgets.Display.createDisplay(未知源)
位于org.eclipse.swt.widgets.Display.create(未知源)
位于org.eclipse.swt.graphics.Device(未知来源)
位于org.eclipse.swt.widgets.Display(未知源)
位于org.eclipse.swt.widgets.Display(未知源)
位于org.eclipse.swt.widgets.Display.getDefault(未知源)
位于org.eclipse.swt.widgets.Shell(未知来源)
位于org.eclipse.swt.widgets.Shell(未知来源)
位于com.android.sdkuilib.internal.repository.ui.SdkUpdaterWindowImpl2.createShell(SdkUpdaterWindowImpl2.java:168)
位于com.android.sdkuilib.internal.repository.ui.SdkUpdaterWindowImpl2.open(SdkUpdaterWindowImpl2.java:137)
位于com.android.sdkuilib.repository.SdkUpdaterWindow.open(SdkUpdaterWindow.java:111)
位于com.android.sdkmanager.Main.showSdkManagerWindow(Main.java:356)
位于com.android.sdkmanager.Main.doAction(Main.java:334)
位于com.android.sdkmanager.Main.run(Main.java:120)
位于com.android.sdkmanager.Main.Main(Main.java:103)
到目前为止我所做的:
apt get install ant
- 从下载“ADT包”
- 将其解压缩到我的主目录
/home/camilstaps
- 将
添加到my/home/camilstaps/adt bundle linux/tools
环境变量PATH
如何解决此异常?如果要运行Android IDE(即Eclipse),需要一个X服务器来显示它。我建议不要尝试在无头服务器上开发Android应用程序,因为你需要一个显示器来使用IDE,并在模拟器中运行你的应用程序,这样你就可以测试它,而无需在每次更改内容时都将其刷新到设备上
如果你想开发没有X显示的应用程序,你必须手工操作,IDE通常会为你做的一切,并且使用一个不需要X的编辑器,比如
vim
或emacs
这里的问题是android
试图打开一个图形显示,但它无法打开android
无法在没有图形屏幕的服务器上运行
但是,通过一些参数,可以使用android。例如,请参见:
android创建项目\
--目标\
--名字\
--路径路径/到/您的/项目\
--活动\
--包装
它看起来像一个旧的eclipse bug。它与JavaVM相关,如果可以排除与X环境相关的问题,您可以尝试其他VM。您可以使用-u
(无UI)选项从命令行更新sdk
如果您将ssh-X放入框中并启动android,它应该在您的机器上使用xserver。有时我必须启动另一个应用程序,例如Firefox,以便在启动android之前让X正常工作 在我的例子中,我尝试安装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
谢谢你的建议!最后,我不会真的在服务器上开发应用程序,有时我只想在服务器上构建它们。同样相关的(不是遇到异常,而是从命令行安装的附加细节):该命令盲目地安装所有东西。。。如何更新安装的内容?注意到同样的行为,当以
su username
运行它时(它没有与GDM的会话,因此在X
下没有显示)。可以想象,它仍然可以工作-在为输出分配显示时,在运行/android
@syslogic之前,您可以尝试使用sudo-E-u username
,然后保留您自己的环境。认为export display=:0
或export display=:0.0
应该选择第一个可用的显示,当存在任何正在进行的X11
(gdm)会话时。当运行headless时,也可以选择类似的VNC显示。这里的答案解释了如何验证显示:;条件ForwardX11 yes
也应相关,以获得输出的任何有效显示。。。刚才注意到,/android
命令已经过时,现在是tools/bin/sdkmanager
。@syslogic-hmm,那么您似乎想做一些与此问题无关的事情。我想在没有GUI的情况下使用android
命令。
./android update sdk -u
root@anotheruser:/eclipse/configuration# exit
logout
anotheruser@anotheruser:~$ cd /eclipse/
anotheruser@anotheruser:/eclipse$ ./eclipse