是否可以将谷歌的Android配置为通过自定义存储库而不是dl.google.com/android/repository
下载依赖项?
背景:
我正在公司防火墙后面建立一个Android构建代理,没有直接的互联网接入。我可以访问局域网上的存储库服务器,它充当预先配置的远程存储库的镜像。
我从这里下载了SDK工具https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
在一台具有Internet访问权限的机器上,我试图像这样配置~/.android/repositories.cfg
:
### User Sources for Android Repository
#Fri Nov 30 12:36:38 CET 2018
enabled00=true
count=1
disp00=DB Artifactory
src00=https://dl.google.com/android/repository/repository2-1.xml
如果我在Android中设置了一个定制的SDK更新站点,那么这就是我得到的配置。
这里下载的xml文件与Android配置的xml文件完全相同--而且在运行sdkmanager命令行工具时,我在Charles中也观察到了同样的情况。
它对于Android中默认的"Android“配置非常好,但是我的自定义配置在Android和命令行中都失败了。
我看到这个错误:
Step 25/34 : RUN yes | sdkmanager --licenses --proxy=http --
proxy_host=host.docker.internal --proxy_port=3128
---> Running in 8d8923c76ba7
Picked up _JAVA_OPTIONS: -XX:+UnlockExperimentalVMOptions -
XX:+UseCGroupMemoryLimitForHeap
Warning: Errors during XML parse: ] 42% Downloading sys-img.xml... Parse X
Warning: cvc-elt.1: Cannot find the declaration of element 'sdk:sdk-repository'.
,,Warning: org.xml.sax.SAXParseException; lineNumber: 17; columnNumber: 139; cvc-elt.1: Cannot find the declaration of element 'sdk:sdk-repository'.
Warning: javax.xml.bind.UnmarshalException - with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 17; columnNumber: 139; cvc-elt.1: Cannot find the declaration of element 'sdk:sdk-repository'.]
Warning: Additionally, the fallback loader failed to parse the XML.
任何帮助都将不胜感激..。
发布于 2019-02-10 16:43:24
查看sdkmanager的源代码 --似乎有一种替代方法可以通过SDK_TEST_BASE_URL
环境变量重写存储库:
为了进行测试,可以将env设置为替换默认的根下载URL。 它必须以/结束,它是更新程序查找repository.xml、addons_list.xml和此类文件的位置。
因此,您可以这样做:
SDK_TEST_BASE_URL=https://your.company/artifactory/android/ sdkmanager "platform-tools"
上面的示例将尝试使用提供的存储库URL安装platform-tools
包。只需确保URL以/
结尾
https://stackoverflow.com/questions/53610346
复制相似问题