在Linux中设置Android SDK Manager代理

9
我正在尝试在我的工作防火墙后在Ubuntu上安装Android SDK,但出现“无法连接到dl-ssl.google.com”的错误消息。这是已知的问题,但我看到的每个解决方案都涉及代理设置和选择“强制http”选项。在Windows中,这似乎很简单,但我想知道如何在LINUX中做同样的事情。我可以设置eclipse代理设置,但我不认为android sdk管理器使用它。是否有配置文件在某个地方?
提前感谢。
Marc

如果有答案对您有帮助,请接受其中之一,这样问题就不会再显示为未解决了。 - Dirk Jäckel
5个回答

38

解决方案是设置本地代理来执行身份验证,并创建文件 ~/.android/androidtool.cfg 将 android 重定向到本地代理,如下所示。

### Settings for Android Tool
#Tue Jun 12 01:34:55 PDT 2012
http.proxyPort=3128
sdkman.monitor.density=108
http.proxyHost=127.0.0.1
sdkman.show.update.only=true
sdkman.ask.adb.restart=false
sdkman.force.http=true
sdkman.show.updateonly=true

这个文件可能已经存在,并有一些条目,例如

http.proxyPort=
http.proxyHost=127.0.0.1\:3128

对我而言,直到我将它更改为上面显示的形式,才起作用:

http.proxyPort=3128
http.proxyHost=127.0.0.1

这对我有用 - 代理端口是问题所在。 - Shirkrin
我的代理服务器也需要身份验证,但只提供http.proxyPorthttp.proxyHost就可以了;Android工具会要求输入凭据以通过该代理。 - mthmulders

6

为了帮助大家,以下是使用SDK Manager设置代理服务器的步骤:

  1. 进入Shell(在Ubuntu中按Ctrl+Alt+T)
  2. 从sdk\tools目录下运行"android" (例如 /mySDKDir/tools/android)
  3. 这会启动SDK Manager。在主菜单上,选择工具 -> 选项来设置代理服务器。
  4. 选择相关的软件包并进行下载/安装。SDK Manager将使用指定的代理服务器设置。

祝好!


2
如果你运行以下命令:
export HTTP_PROXY=http://my_proxy:port/

在运行androideclipse之前,应在shell中输入该命令。如果您希望永久性地在整个账户上生效,请将以上命令添加到~/.bashrc文件中。

2
它不工作。环境:debian,android sdk构建日期2013.10.30,x64。 - holgac
1
我可以确认,对于我来说,使用HTTP_PROXY(全大写)而不是http_proxy确实有效。但这很“奇怪”,我需要执行以下命令:export HTTP_PROXY=http://<username>:<password>@myproxy.com:8080/export HTTPS_PROXY=http://<username>:<password>@myproxy.com:8080/,并运行此命令一次sdkmanager --proxy=http --proxy_host=myproxy.com --proxy_port=8080 --list。完成这些步骤后,我不再需要环境变量或任何代理选项来运行sdkmanager。(我只能假设代理设置被缓存到了某个地方[?]) - evadeflow

1
我将安卓工具 androidtool.cfg 的设置从 Windows 复制到 Linux 文件中,结果运行得非常完美。

1
我能够编辑~/.android/androidtool.cfg,并输入我的代理信息,但需要使用代理的IP地址(可以工作),而不是主机名(无法工作)。似乎在Linux中,Android SDK管理无法解析名称。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接