无头linux上的"android update sdk"

foc*_*ser 77 android

有没有人成功在无头Linux服务器上更新/安装Android SDK平台?我得到的是以下错误:

似乎实际上不支持"更新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)
Run Code Online (Sandbox Code Playgroud)

更新:此问题是在不支持无头更新时提出的.现在可以做一个android update sdk --no-ui.谢谢大家!

x2o*_*2on 77

您可以使用以下--no-ui选项:

android update sdk --no-ui
Run Code Online (Sandbox Code Playgroud)

如果您想自动化它,您可以通过使用此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
}
'
Run Code Online (Sandbox Code Playgroud)

  • 要自动接受许可证,下一版本将添加一个`--accept-license`标志.与此同时,你可以"回应"y"| android update sdk --no - ui` (9认同)
  • 目前没有--accept-license :( (3认同)

Die*_*ano 52

无头和自动更新Android SDK在is-there-a-way-to-automate-the-android-sdk-installation中有所描述

  • 其中基本上说:android update sdk --no-ui (55认同)
  • 还有更多. (4认同)
  • 确实 - 它实际上是在自述文件中 (2认同)
  • 巨大的注意:`android update sdk --no-ui`将安装所有平台,从eclair到marshmallow.为了防止你需要使用--filter参数,例如`android update sdk --no-ui --filter 1,2`,只需要平台工具和sdk工具,比如adb和fastboot.对于完整的过滤器列表运行`android list sdk` http://tools.android.com/recent/updatingsdkfromcommand-line (2认同)

Mar*_*arc 7

我刚遇到同样的问题.我发现了一个解决方法.

第一个是警察:在头部系统上下载平台,只需将平台子目录复制到你的android sdk/platforms目录中.

如果像我一样,您无法立即访问另一个头脑的Android开发环境,那么您可以访问Google的SDK档案并下载包含该平台的其他SDK之一.这意味着您只能为Android 1.1和1.5开发.

获取Linux系统的下载是他们的Android 1.5 r3.当然,google的sdk下载页面不是lynx友好的,所以我必须从另一个GUI系统获得直接链接.

wget http://dl.google.com/android/archives/android-sdk-linux_x86-1.5_r3.zip
Run Code Online (Sandbox Code Playgroud)

然后,只需解压缩存档,并将平台sibdirs移动到新的SDK平台目录.

android create avd -t 3 -p path/to/avd/dir -n "name"
Run Code Online (Sandbox Code Playgroud)

这将为您的1.5平台创建一个具有指定名称和目录的AVD.请注意,avd目录不应该存在.如果要覆盖,请在命令中添加--force.

到目前为止,安装了一个平台并创建了一个AVD.不幸的是,尝试构建在这一点失败,因为我运行64位服务器,谷歌只发布32位工具.

我在此stackoverflow问题的接受答案中找到了解决方案,并用于sudo apt-get install ia32-libs启用运行32位工具的能力.

然后,您应该能够使用CLI上的android工具将eclipse项目(1.5或更低版本)转换为具有ant构建系统,或者您可以创建一个新项目供您开始使用.

希望这可以帮助!