企业代理环境下GluonFX Maven插件代理配置及工具链下载问题
解决GluonFX Android工具链下载的代理问题
问题背景
在企业代理环境下使用CNTLM做代理认证,通过Maven参数解决了GluonFX初始依赖下载问题,但执行mvn -Pandroid gluonfx:compile时,Android sdkmanager无法通过代理连接dl.google.com,抛出java.net.UnknownHostException,无法下载platforms;android-31等组件。环境为Windows10虚拟机中的Debian11.6,Java17,GraalVM17。
解决方案
1. 为sdkmanager单独传递代理参数
GluonFX调用sdkmanager时,需单独为其指定代理配置(替换为你的CNTLM代理地址和端口),在Maven命令中追加参数:
mvn -Pandroid gluonfx:compile \ -Dhttp.proxyHost=127.0.0.1 \ -Dhttp.proxyPort=3128 \ -Dhttps.proxyHost=127.0.0.1 \ -Dhttps.proxyPort=3128 \ -Dsdkmanager.http.proxyHost=127.0.0.1 \ -Dsdkmanager.http.proxyPort=3128 \ -Dsdkmanager.https.proxyHost=127.0.0.1 \ -Dsdkmanager.https.proxyPort=3128
若企业代理需要认证,再添加以下参数:
-Dsdkmanager.http.proxyUser=你的用户名 \ -Dsdkmanager.http.proxyPassword=你的密码 \ -Dsdkmanager.https.proxyUser=你的用户名 \ -Dsdkmanager.https.proxyPassword=你的密码
2. 配置Android SDK全局代理文件
创建或修改~/.android/repositories.cfg文件(无则新建),添加代理配置:
http.proxyHost=127.0.0.1 http.proxyPort=3128 https.proxyHost=127.0.0.1 https.proxyPort=3128 # 需认证时追加 http.proxyUser=你的用户名 http.proxyPassword=你的密码 https.proxyUser=你的用户名 https.proxyPassword=你的密码
注:GluonFX默认会将Android SDK下载到~/.gluon/substrate/android/sdk,也可通过-DandroidSdkPath参数指定已有SDK路径。
3. 检查CNTLM配置确保HTTPS转发
打开CNTLM配置文件(通常为/etc/cntlm.conf),确认启用HTTPS代理转发:
Listen 127.0.0.1:3128 # 替换为企业代理的地址和端口 Proxy 企业代理地址:端口 HTTPSProxy 企业代理地址:端口 # 根据企业要求配置认证信息 Username 你的用户名 Domain 你的域
修改后重启CNTLM服务:
sudo systemctl restart cntlm
若CNTLM部署在Windows主机上,需将Debian虚拟机的代理地址改为Windows主机的IP,而非127.0.0.1。
4. 手动下载Android工具链(备选)
若以上方法无效,可手动下载所需组件:
- 下载对应版本的platforms、build-tools等组件
- 将文件放入
~/.gluon/substrate/android/sdk/platforms和~/.gluon/substrate/android/sdk/build-tools目录 - 重新执行GluonFX构建命令
内容的提问来源于stack exchange,提问作者Julian Pfeiffer
相关产品推荐
相关产品推荐

