Ответ 1
Обновление Android SDK без головы и автоматически описано в is-there-a-way-to-automate-the-android-sdk-installation
Кто-нибудь преуспел в обновлении/установке 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
. Спасибо, ребята!
Обновление Android SDK без головы и автоматически описано в is-there-a-way-to-automate-the-android-sdk-installation
Вы можете использовать опцию --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
}
'
Я столкнулся с одной и той же проблемой. Я нашел обходное решение.
Первым из них является копирование: Загрузите платформы в возглавляемую систему и просто скопируйте подкаталоги платформы в директорию 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, или вы можете создать для него новый проект для начала работая.
Надеюсь, это поможет!
Да, это работает, но вам нужны библиотеки GUI, и вам нужно, чтобы ваш DISPLAY установил тот X-сервер, который вы хотите отобразить. Я теперь работаю над CentOS 5.4 и должен был использовать опцию "Server-GUI" verse "Server". Затем я просто использую "ssh -X" из системы, где я хочу, чтобы она отображалась.
Я только что создал небольшой инструмент командной строки, который выполняет обновление в любой среде (GUI или без GUI). У меня не было возможности проверить его широко, но насколько я могу судить, он делает то, что должен.
Инструмент командной строки обновляет предварительно установленный базовый Android SDK со всеми доступными в настоящее время платформами, надстройками, дополнениями, документами, образцами и инструментами. Этого должно быть достаточно для сервера сборки (мне нужно это для моей установки Hudson CI с Maven).
Пожалуйста, перейдите сюда для получения более подробной информации: