Android: Исключение в org.eclipse.swt.SWTError: больше не обрабатывается [gtk_init_check() не удалось]
Я пытаюсь настроить среду, в которой я могу разрабатывать приложения для Android на сервере Ubuntu 13.04. Поэтому я могу использовать только командную строку.
Когда я запускаю 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
- Загрузили пакет ADT из http://developer.android.com/sdk/index.html
- Распакуйте его в моем домашнем каталоге
/home/camilstaps
- Добавлен
/home/camilstaps/adt-bundle-linux/tools
в мою переменную окружения PATH
Что я могу сделать для устранения этого исключения?
Ответы
Ответ 1
Проблема заключалась в том, что 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>
Ответ 2
Вы можете обновить sdk из командной строки, используя опцию -u
(без интерфейса).
./android update sdk -u
Ответ 3
Если вы хотите запустить Android IDE (это Eclipse), вам понадобится X-сервер для его отображения. Я бы рекомендовал не пытаться разрабатывать Android-приложения на безголовом сервере, так как вам понадобится дисплей для использования среды IDE и запуска вашего приложения в эмуляторе, чтобы вы могли протестировать его, не мигая с ним на устройстве каждый раз, когда вы что-то меняете.
Если вы хотите разработать приложение без дисплея X, вам придется делать все вручную, что обычно делает IDE для вас, и использовать редактор, который не требует X, например vim
или emacs
.
Ответ 4
Если вы используете ssh -X в поле и запускаете андроид, он должен использовать xserver на вашем компьютере. Иногда мне приходится запускать другое приложение, например. Firefox, чтобы заставить X работать до запуска Android.
Ответ 5
Он похож на старую ошибку затмения. Это связано с JavaVM, вы можете попробовать другую виртуальную машину, если вы можете исключить, что проблема связана с средой X.