"Android Update SDK" на безголовый Linux - PullRequest
77 голосов
/ 28 января 2010

Кому-нибудь удалось обновить / установить платформы Android SDK на безголовый сервер Linux? Все, что я получил, это следующая ошибка:

Кажется, что действие "обновить SDK" на самом деле не поддерживается?

~/android-sdk-linux_86/tools$ ./android --verbose update sdk
No command line parameters provided, launching UI.
See 'android --help' for operations from the command line.
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-pi-gtk-3550 or swt-pi-gtk in swt.library.path, java.library.path or the jar file
        at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
        at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
        at org.eclipse.swt.internal.gtk.OS.<clinit>(Unknown Source)
        at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
        at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
        at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
        at com.android.sdkuilib.internal.repository.UpdaterWindowImpl.open(UpdaterWindowImpl.java:93)
        at com.android.sdkuilib.repository.UpdaterWindow.open(UpdaterWindow.java:110)
        at com.android.sdkmanager.Main.showMainWindow(Main.java:281)
        at com.android.sdkmanager.Main.doAction(Main.java:251)
        at com.android.sdkmanager.Main.run(Main.java:92)
        at com.android.sdkmanager.Main.main(Main.java:81)

Обновление : вопрос был задан некоторое время назад, когда обновление без поддержки головы не поддерживалось. Теперь можно сделать только android update sdk --no-ui. Спасибо, ребята!

Ответы [ 5 ]

77 голосов
/ 13 июля 2011

Вы можете использовать опцию --no-ui:

android update sdk --no-ui

Если вы хотите автоматизировать его, вы можете принять все лицензии, используя инструмент expect с этим хаком (опция --accept-license в настоящее время не полностью интегрирована в инструмент android):

expect -c '
set timeout -1;
spawn android - update sdk --no-ui;
expect {
    "Do you accept the license" { exp_send "y\r" ; exp_continue }
    eof
}
'
52 голосов
/ 13 января 2011

Обновление Android SDK без заголовка и автоматически описано в «Есть ли способ автоматизировать установку Android» sdk

7 голосов
/ 24 марта 2010

Я просто столкнулся с той же проблемой. Я нашел обходной путь, хотя.

Первый - это отбой: загрузите платформы в возглавляемой системе и просто скопируйте подкаталоги платформ в каталог Android SDK / платформы.

Если, как и я, у вас нет непосредственного доступа к другой среде Android-разработчика, вы можете зайти в архив Google SDK и загрузить один из других SDK, включающих платформы. Этот способ означает, что вы можете разрабатывать только для Android 1.1 и 1.5.

Загрузка для систем Linux - это их Android 1.5 r3. Конечно, страницы загрузки SDK от Google не подходят для Lynx, поэтому мне пришлось получить прямую ссылку из другой системы с графическим интерфейсом.

wget http://dl.google.com/android/archives/android-sdk-linux_x86-1.5_r3.zip

Тогда нужно просто распаковать архив и переместить sibdirs платформы на новый каталог SDK платформы.

android create avd -t 3 -p path/to/avd/dir -n "name"

Это создает AVD для платформы 1.5 с указанными вами именем и каталогом. Обратите внимание, что avd dir не должно существовать. Если вы хотите перезаписать, добавьте --force к команде.

На этом пути установлена ​​платформа и создан AVD. К сожалению, на данный момент попытка сборки не удалась, потому что я запускаю 64-битный сервер, а Google выпускает только 32-битные инструменты.

Я нашел решение для этого в принятом ответе на этот вопрос стекопотока и использовал sudo apt-get install ia32-libs, чтобы включить возможность запуска 32-битных инструментов.

Тогда вы сможете использовать инструмент android в CLI, чтобы либо преобразовать проект eclipse (для версии 1.5 или ниже) в систему сборки ant, либо вы можете создать новый проект, чтобы начать работу над ним. .

Надеюсь, это поможет!

3 голосов
/ 06 августа 2010

Я только что создал небольшой инструмент командной строки, который выполняет обновление в любой среде (GUI или не-GUI). Не было возможности тщательно его протестировать, но, насколько я могу судить, он делает то, что должен.

Инструмент командной строки обновляет предустановленный базовый Android SDK со всеми доступными в настоящее время платформами, надстройками, дополнениями, документами, примерами и инструментами. Этого должно быть достаточно для сервера сборки (мне это нужно для установки Hudson CI с Maven).

Пожалуйста, перейдите сюда для получения более подробной информации:

http://code.google.com/p/android-sdk-tool

3 голосов
/ 23 февраля 2010

Да, это работает, но вам нужно установить библиотеки GUI, и вам нужно, чтобы ваш DISPLAY был настроен на то, какой X-сервер вы хотите, чтобы он отображал. У меня сейчас работает на CentOS 5.4 и пришлось использовать опцию «Server - GUI» verse «Server». Тогда я просто использую "ssh -X" из системы, где я хочу, чтобы он отображался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...