Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;android更新sdk“;关于无头linux_Android - Fatal编程技术网

&引用;android更新sdk“;关于无头linux

&引用;android更新sdk“;关于无头linux,android,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

是否有人成功地在无头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)
~/android-sdk-linux\u 86/tools$。/android——详细更新sdk
未提供命令行参数,正在启动UI。
有关命令行中的操作,请参见“android--help”。
线程“main”java.lang.UnsatisfiedLinkError中出现异常:swt.library.path、java.library.path或jar文件中没有swt-pi-gtk-3550或swt-pi gtk
位于org.eclipse.swt.internal.Library.loadLibrary(未知源)
位于org.eclipse.swt.internal.Library.loadLibrary(未知源)
位于org.eclipse.swt.internal.gtk.OS(未知来源)
位于org.eclipse.swt.internal.Converter.wcsToMbcs(未知源)
位于org.eclipse.swt.internal.Converter.wcsToMbcs(未知源)
位于org.eclipse.swt.widgets.Display(未知源)
在com.android.sdkuilib.internal.repository.UpdaterWindowImpl.open(UpdaterWindowImpl.java:93)上
位于com.android.sdkuilib.repository.UpdaterWindow.open(UpdaterWindow.java:110)
在com.android.sdkmanager.Main.showmain窗口(Main.java:281)
位于com.android.sdkmanager.Main.doAction(Main.java:251)
位于com.android.sdkmanager.Main.run(Main.java:92)
位于com.android.sdkmanager.Main.Main(Main.java:81)

更新:这个问题是在不久前提出的,当时不支持无头更新。现在可以只做一个
android更新sdk——没有ui
。谢谢大家

是的,它可以工作,但您需要安装GUI库,并且需要将显示设置为希望它显示的X服务器。我现在在CentOS 5.4上使用它,并且必须使用“Server-GUI”和“Server”安装选项。然后,我只需要在希望显示的系统中使用“ssh-X”

我也遇到了同样的问题。不过我找到了一个解决办法

第一个是逃避:在一个有标题的系统上下载平台,然后简单地将平台子目录复制到您的androidsdk/platforms目录中

如果像我一样,你不能立即访问另一个android开发环境,你可以访问谷歌的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
然后,只需解压缩归档文件,并将平台SIBDIR移动到更新的SDK平台dir即可

android create avd -t 3 -p path/to/avd/dir -n "name"
这将使用指定的名称和目录为1.5平台创建AVD。注意,avd目录不应该存在。如果要覆盖,请在命令中添加--force

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

我在的公认答案中找到了解决方案,并使用
sudo apt get install ia32 libs
启用运行32位工具的功能

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


希望这有帮助

我刚刚创建了一个小型命令行工具,可以在任何环境(GUI或非GUI)中进行更新。没有机会对它进行广泛的测试,但据我所知,它做了它应该做的事情

命令行工具使用所有当前可用的平台、附加组件、附加组件、文档、示例和工具更新预装的基本Android SDK。这对于构建服务器来说应该足够了(我需要它来安装带有Maven的Hudson CI)

请点击此处了解更多详情:


中介绍了自动更新Android SDK headless and automatically,您可以使用
--no ui
选项:

android update sdk --no-ui
如果您想使其自动化,您可以通过使用
expect
工具接受所有许可证(
--accept license
选项目前未完全集成在
android
工具中):


我不得不使用
strace-f-v-s1024-o/tmp/android.log./android
对其进行分析。我发现所需的lib正在自动创建,并在/tmp/swtlib-64/下找到。然而,我仍然得到了上面的错误。深入挖掘/tmp/android.log,我发现了
libgtk-x11-2.0。所以没有找到.0
。因此,在
sudo-apt安装libgtk2.0-0
之后,我可以使用
ssh-X
图形化地运行android安装程序到headless服务器。

你能提供一个更具体的例子吗?可能的副本要自动接受许可证,下一个版本将添加一个
--接受许可证
标志。同时你可以
echo“y”| android update sdk--no--ui
@Snicolas你有这方面的来源吗?我看到的参考资料使它似乎需要一个特定的许可证号作为参数,并且可能是供内部使用。很可能是错的……你可以在github上找到一个例子:@Snicolas没有尝试echo,但我被提示了两次,所以它肯定不起作用。注意:
android update sdk——没有ui
会安装所有平台,从eclair到棉花糖。为了防止出现这种情况,您需要为平台工具和sdk工具(如adb和fastboot)使用--filter参数,如android update sdk--no ui--filter 1,2。要查看过滤器的完整列表,请运行android list sdk
expect -c '
set timeout -1;
spawn android - update sdk --no-ui;
expect {
    "Do you accept the license" { exp_send "y\r" ; exp_continue }
    eof
}
'