"Android-обновление sdk" на безголовом Linux

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

Кажется, что действие "update 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)

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

Ответ 2

Вы можете использовать опцию --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
}
'

Ответ 3

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

Первым из них является копирование: Загрузите платформы в возглавляемую систему и просто скопируйте подкаталоги платформы в директорию sdk/platform для Android.

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

Загрузка для Linux-систем - это их Android 1.5 r3. Конечно, страницы загрузки google sdk не дружелюбны к рыси, поэтому мне нужно было получить прямую ссылку от другой GUI-системы.

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

Тогда это просто вопрос распаковки архива и перемещение платформы sibdirs на ваш новый dir-сервер SDK.

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

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

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

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

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

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

Ответ 4

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

Ответ 5

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

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

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

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