ubuntu18.04 配置安卓编译环境

目前有个项目,验收时有个要求是在linux中进行编译打包生成apk文件。我平时都是在windows环境android studio中进行打包的,花了半天时间研究了一下,记录如下:

安装安卓sdk

bash 复制代码
cd /opt
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip sdk-tools-linux-4333796.zip
mkdir sdk
mv tools/ sdk/

配置环境变量

bash 复制代码
gedit /etc/profile
复制代码
profile文件中加入以下两行
export ANDROID_HOME=/opt/sdk
export PATH=${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}:${PATH}
bash 复制代码
source /etc/profile
sdkmanager --list

如果有以下报错,说明还没装jdk

ERROR:JAVA HOME is not set and no 'java' command could be found in your PATH.

安装jdk

bash 复制代码
apt update
apt install openjdk-8-jdk

安装安卓build-tools和platforms

bash 复制代码
sdkmanager "build-tools;29.0.3"
sdkmanager "platforms;android-29"

再次执行sdkmanager --list

如果看到以下3行输出,说明安装正常

bash 复制代码
Installed packages:=====================] 100% Computing updates...             
  Path                 | Version | Description                    | Location             
  -------              | ------- | -------                        | -------              
  build-tools;29.0.3   | 29.0.3  | Android SDK Build-Tools 29.0.3 | build-tools/29.0.3/  
  platforms;android-29 | 5       | Android SDK Platform 29        | platforms/android-29/
  tools                | 26.1.1  | Android SDK Tools 26.1.1       | tools/               

安装gradle

gradle的版本号看项目配置文件/gradle/wrapper/gradle-wrapper.properties

bash 复制代码
cd /opt
wget https://services.gradle.org/distributions/gradle-6.5-bin.zip
unzip gradle-6.5-bin.zip
mkdir gradle
mv gradle-6.5 /opt/gradle/

配置环境变量

bash 复制代码
gedit /etc/profile

profile文件中加入以下两行

export GRADLE_HOME=/opt/gradle/gradle-6.5

export PATH={GRADLE_HOME}/bin:{PATH}

bash 复制代码
source /etc/profile

导入android studio项目并打包

opt下面建一个code文件夹,将demo项目放到里面,执行gradle assembleRelease

接着有报错,说是证书路径找不到。我的证书配置在项目路径/app/build.gradle中

bash 复制代码
FAILURE: Build failed with an exception.

* Where:
Build file '/opt/code/demo/app/build.gradle' line: 19

* What went wrong:
A problem occurred evaluating project ':app'.
> Cannot convert URL 'C:/Users/Administrator/.android/demo.keystore' to a file.

我把证书复制到/app/目录下,修改一下项目路径/app/build.gradle配置

再次执行gradle assembleRelease

编译成功后apk文件会输出到项目路径/app/build/outputs/apk/release/目录中

相关推荐
古法安卓8 小时前
Android-SELinux 策略调试实战:从 AVC 日志到策略修复
android·java·android studio
Dovis(誓平步青云)9 小时前
DevEco Studio 6.1.1 Windows 安装实录:从下载校验到首次启动
android·开发语言·数据库·人工智能·windows·harmonyos
Zender Han9 小时前
Flutter 自适应(Adaptive)与响应式(Responsive)设计实践:官方推荐方案详解
android·flutter·ios
我命由我1234510 小时前
Android 开发问题:TopAppBar 和 topAppBarColors API is experimental...
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
造火箭10 小时前
Android UI自动化测试可行性评估SKILL
android·功能测试·ui
hunterandroid12 小时前
[Android 从零到一] ViewPager2 与 Fragment 生命周期协同:从预加载到状态一致性
android·前端
mmsx12 小时前
一个黑边 Bug 修了两版:自己算矩阵直接黑屏,借库重建只用了一行 setZoom
android·前端
枢影Kernel13 小时前
Android CLI 与 Android Skills 最佳实践:把 AI Agent 接入可验证的 Android 开发流程
android
Kapaseker13 小时前
没想到吧!Skill 也可以测试 — 小白都看得懂的 Skill 教程
android·人工智能·kotlin
我命由我1234513 小时前
Android 开发问题:使用 AndroidTreeView 时,自定义视图无法撑满父容器
android·java·java-ee·kotlin·android studio·android-studio·android runtime