当前位置: 首页 > news >正文

使用docker制作Android镜像(实操可用)

一、安装包准备

1、准备jdk

下载地址:Java Downloads | Oracle

注意版本!!!!!! 我下载的jdk17,不然后面构建镜像报错,就是版本不对

2、准备安装的工具包

ttps://developer.android.google.cn/studio/ 这里下载安卓工具,后面的版本参考

下载地址的生成规则:https://dl.google.com/android/repository/文件名

文件名就是:commandlinetools-mac-11479570_latest.zip(根据自己的环境选择对应的

我是采用的在dockerfile直接下载的方式

cmdline-tools 版本    最低 JDK    Mac    Linux    Windows
13.0(latest)    17    commandlinetools-mac-11479570_latest.zip    commandlinetools-linux-11479570_latest.zip    commandlinetools-win-11479570_latest.zip
12.0    17    commandlinetools-mac-11076708_latest.zip    commandlinetools-linux-11076708_latest.zip    commandlinetools-win-11076708_latest.zip
11.0    17    commandlinetools-mac-10406996_latest.zip    commandlinetools-linux-10406996_latest.zip    commandlinetools-win-10406996_latest.zip
10.0    11    commandlinetools-mac-9862592_latest.zip    commandlinetools-linux-9862592_latest.zip    commandlinetools-win-9862592_latest.zip
9.0    11    commandlinetools-mac-9477386_latest.zip    commandlinetools-linux-9477386_latest.zip    commandlinetools-win-9477386_latest.zip
8.0    8    commandlinetools-mac-9123335_latest.zip    commandlinetools-linux-9123335_latest.zip    commandlinetools-win-9123335_latest.zip

二、制作镜像

1、下载jdk版本的压缩包,传到Linux上面,编写dockerfile

FROM ***********/base/ubuntu-base:python3.10#RUN pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple
#RUN pip config set global.trusted-host mirrors.cloud.tencent.comWORKDIR /home/workADD ./*.py /home/work
# 拷贝JDK安装包到容器中
# 安装jdk
ADD jdk-17_linux-x64_bin.tar.gz /usr/app/java
RUN mkdir -p /usr/app/java#设置JAVA_HOME的环境变量
ENV JAVA_HOME=/usr/app/java/jdk-17.0.10
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
#容器启动时需要执行的命令
CMD java -versionRUN mkdir -p /usr/local/androidSdk# 设置变量
ENV ANDROID_HOME="/usr/local/androidSdk" \SDK_TOOL_URL="https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip"RUN echo  "Y" |  apt install unzip
RUN apt update
RUN echo  "Y" |  apt install curl# 创建android sdk目录,并下载 sdkmanager
RUN  cd $ANDROID_HOME \&& curl -o sdk.zip $SDK_TOOL_URL \&& unzip sdk.zip \&& rm sdk.zip# 解压完之后在cmdline-tools路径下创建latest文件夹
RUN mkdir -p ${ANDROID_HOME}/sdk/cmdline-tools/latest RUN cp -r ${ANDROID_HOME}/cmdline-tools/* ${ANDROID_HOME}/sdk/cmdline-tools/latest# 安装android sdk其他package, 输入y是因为此处会有一个licence,需要用户同意后才会安装
RUN echo "Y" | ${ANDROID_HOME}/sdk/cmdline-tools/latest/bin/sdkmanager "platform-tools" "platforms;android-28" "build-tools;28.0.3"# 设置环境变量: 把 android sdk 路径加入到 PATH 中
ENV PATH ${ANDROID_HOME}/sdk/cmdline-tools:${ANDROID_HOME}/sdk/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${PATH}RUN apt update
RUN pip install oss2RUN apt clean

  注意这里的基础镜像你们根据你们的实际 情况修改,改成Ubuntu的镜像即可。

2、构建镜像

docker build -t  /jenkins/android-package:0.0.1 .

3、push镜像

 docker push /jenkins/android-package:0.0.1

三、遇到的问题

1、jdk和Android的版本问题,参考上面的即可

2、 Either specify it explicitly with --sdk_root= or move this package into its expected location: <sdk>/cmdline-tools/latest/

解决方案:修改路径,将文件放到latest的文件夹下,具体操作如图。

参考:docker+jenkins+android环境搭建(使用dockerfile) - 掘金

在docker搭建android编译打包环境实践 - 简书

Android cmdline-tools 版本与其最小JDK关系_java11对应的android sdk tools-linux版本是多少-CSDN博客

Linux 环境下 搭建Android SDK 和Android NDK-腾讯云开发者社区-腾讯云

http://www.lryc.cn/news/336006.html

相关文章:

  • 大厂MVP技术JAVA架构师培养
  • uniapp实现文件和图片选择上传功能实现
  • 2024认证杯数学建模C题思路模型代码
  • springcloud项目中,nacos远程的坑
  • 南京航空航天大学-考研科目-513测试技术综合 高分整理内容资料-01-单片机原理及应用分层教程-单片机有关常识部分
  • 【python】Flask Web框架
  • Electron+React 搭建桌面应用
  • 基于Android的记单词App系统的设计与实现
  • ELK 企业级日志分析系统 简单介绍
  • GET与POST:详述HTTP两大请求方法的语义、数据处理机制、安全特性与适用场景
  • Unity Pro 2019 for Mac:专业级游戏引擎,助力创意无限延伸!
  • C++设计模式:单例模式(十)
  • openssl3.2 - exp - zlib
  • 【故事】无人机学习之旅
  • torch.mean()的使用方法
  • windows安装Redis,Mongo,ES并快速基本掌握开发流程
  • ruoyi-nbcio-plus基于vue3的flowable的自定义业务提交申请组件的升级修改
  • 掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
  • 典型新能源汽车热管理系统方案分析
  • 使用Docker部署开源项目FreeGPT35来免费调用ChatGPT3.5 API
  • 《Linux运维实战:Kylin V10操作系统开启安装软件保留缓存设置》
  • 视频生成技术:从GAN到Latte
  • 机器学习中的激活函数
  • LinuxAndroid: 旋转编码器input输入事件适配(旋转输入)
  • 机器学习和深度学习-- 李宏毅(笔记与个人理解)Day10
  • perl 交叉编译
  • 浅谈.版本管理工具
  • 【汇编语言实战】已知10个整数求最大值
  • 在 CentOS 7 上安装 Redis
  • 『51单片机』蜂鸣器