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

ubuntu18.04 配置安卓编译环境

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

安装安卓sdk 

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/

 配置环境变量(用vim打开也行)

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

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

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

安装jdk

apt update
apt install openjdk-8-jdk

安装完查看版本号,必须是1.8的版本

root@sf-virtual-machine:~# java -version
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_362-8u372-ga~us1-0ubuntu1~18.04-b09)
OpenJDK 64-Bit Server VM (build 25.362-b09, mixed mode)
 

安装安卓build-tools和platforms

sdkmanager "build-tools;29.0.3"
sdkmanager "platforms;android-29"

再次执行sdkmanager --list

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

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

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/

 配置环境变量(用vim打开也行)

gedit /etc/profile

profile文件中加入以下两行

export GRADLE_HOME=/opt/gradle/gradle-6.5
export PATH=${GRADLE_HOME}/bin:${PATH}

source /etc/profile

 导入android studio项目并打包

opt下面建一个code文件夹

cd /opt
mkdir code
cd code

  将demo项目放到code目录下,在项目中执行gradle assembleRelease

root@sf-virtual-machine:/opt/code# cd demo
root@sf-virtual-machine:/opt/code/demo# gradle assembleRelease

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

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/目录中

相关文章:

ubuntu18.04 配置安卓编译环境

目前有个项目,验收时有个要求是在linux中进行编译打包生成apk文件。我平时都是在windows环境android studio中进行打包的,花了半天时间研究了一下,记录如下: 安装安卓sdk cd /opt wget https://dl.google.com/android/reposito…...

pycharm分支提交操作

一、Pycharm拉取Git远程仓库代码 1、点击VCS > Get from Version Control 2、输入git的url,选择自己的项目路径 3、点击Clone,就拉取成功了 默认签出分支为main 选择develop签出即可进行开发工作 二、创建分支(非必要可以不使用&#xf…...

ESP32-C3 开发笔记 之 arduino 正常上传 串口乱码2024/11/15

ESP32-C3 开发笔记 之 arduino 正常上传 串口乱码 ESP32-C3 开发笔记 之 arduino 正常上传程序 但是打开串口,串口快速刷新 芯片一直处于重启状态 找了很久的原因没找到,用Mixly 上传就正常 最后看到这篇 文章https://blog.csdn.net/luooove/article/details/132351398修改了Fl…...

Ubuntu 的 ROS 操作系统 turtlebot3 SLAM仿真

引言 SLAM(同步定位与地图构建)在Gazebo仿真环境中的应用能够模拟真实机器人进行环境建图和导航。通过SLAM仿真,开发者可以在虚拟环境中测试算法,而不必依赖真实硬件,便于调试与优化。 Gazebo提供了多个虚拟环境&…...

2024年11月15日

1.计算机网络 逻辑右移 做加减法 定点乘法 原码乘法运算 一位乘 计组 2.英语六级...

websocket初始化

websocket初始化 前言 上一集我们HTTP的ping操作就可以跑通了,那么我们还有一个协议---websocket,我们在这一集就要去完成我们websocket的初始化。 分析 我们在初始化websocket的之前,我们考虑一下,我们什么时候就要初始化我们…...

uniapp ios app以framwork形式接入sentry

一、下载Sentry mac终端输入:vim Podfile修改Podfile: platform :ios, 11.0 target YourApp douse_frameworks! # This is importantpod Sentry, :git > https://github.com/getsentry/sentry-cocoa.git, :tag > 8.40.1 end执行:pod install下载…...

⾃动化运维利器Ansible-基础

Ansible基础 一、工作原理二、快速入门2.1 测试所有资产的网络连通性2.2 发布文件到被管理节点(资产) 三、资产(被管理节点)3.1 静态资产3.1.1 自定义资产3.1.2 自定义资产的使用3.1.3 资产选择器 四、Ansible Ad-Hoc 命令4.1 模块类型4.1.1 command & shell 模块4.1.2 cop…...

若依笔记(十一):芋道多租户限制与修改

目录 多租户实现 哪些表是多租户的? YudaoTenant自动装载类 租户隔离的sql在哪? 如何修改成无租户隔离 全局修改 表级别 请求RUL级别 芋道比若依多了租户概念,这也是因为它增加很多业务系统,首先后台管理系统肯定是多租户的,这意味着如商城系统的产品管理SPU、库存…...

hive 统计各项目下排名前5的问题种类

实现指定某项目下的数据效果图如下所示: 其中 ABCDE 为前5名的问题种类,其中A问题有124个(出现了124次) 数据说明: 整个数据集 包含很多项目一个项目 包含很多问题一个问题 选项 可认为是 类别值,所有出…...

HBase 安装与基本操作指南

以下是关于 Apache HBase 安装、配置以及简单操作的详细指南: HBase 简介 Apache HBase 是一个基于 Hadoop 的分布式数据库,擅长处理大规模、结构化的海量数据。它采用行列式存储方式,与 Hadoop 和 HDFS 紧密结合,是支持大数据实…...

Spring Boot应用中的文件压缩与解压技术实践

在构建Spring Boot应用时,文件压缩与解压是处理大量数据、优化存储和传输速度的常用技术。本文旨在深入探讨Spring Boot应用中文件压缩与解压的实现方法,包括常见压缩算法的选择、Spring Boot中的实现策略以及实际应用场景中的最佳实践。 引言 随着大数…...

D69【 python 接口自动化学习】- python 基础之数据库

day69 Python 执行 SQL 语句 学习日期:20241115 学习目标: MySQL 数据库﹣- Python连接redis 学习笔记: redis数据库的用途 使用Python访问redis数据库 使用Python对redis数据库进行读写操作 总结 1. redis是一款高性能的键…...

410. 分割数组的最大值

目录 题目解法 题目 给定一个非负整数数组 nums 和一个整数 k &#xff0c;你需要将这个数组分成 k 个非空的连续子数组&#xff0c;使得这 k 个子数组各自和的最大值 最小。 返回分割后最小的和的最大值。 子数组 是数组中连续的部份。 解法 int splitArray(vector<in…...

Azure pipeline 通过git命令修改文件

步骤及解释 设置git用户名 git config --global user.email "useremail" git config --global user.name "username" 获取branch $branch "$(Build.SourceBranch)" -replace "refs/heads/" "$(Build.SourceBranch)"&a…...

LeetCode74. 搜索二维矩阵(2024冬季每日一题 6)

给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。…...

BPMN 2.0详细介绍

BPMN 2.0&#xff08;Business Process Model and Notation 2.0&#xff09;是一个标准化的图形化建模语言&#xff0c;用于描述业务流程和工作流。它是由 Object Management Group (OMG) 制定的&#xff0c;旨在提供一种标准化的方式&#xff0c;帮助企业和开发者清晰地建模、…...

web——upload-labs——第四关——.htaccess文件绕过

先尝试直接上传一个普通的一句话木马 显示此文件不允许上传&#xff0c;这道题并没有提示不允许上传什么后缀的文件&#xff0c;经过尝试&#xff0c;基本上所有后缀能够被解析为php语句执行的文件都不能成功上传。试试正常的图片能不能上传&#xff1a; 我们再来试试图片马能不…...

36.矩阵格式的等差数列 C语言

第一行&#xff0c;每个数差2&#xff0c;之后是3、4、5&#xff0c;最后一行是10 仅仅是练习目的 #define _CRT_SECURE_NO_WARNINGS // 禁用在 Visual Studio 中有关不安全函数的警告 #include <stdio.h> // 引入标准输入输出库int main() {int i; // 外层循环的变量…...

Java 语言的强大特性

一、面向对象 面向对象编程&#xff08;OOP&#xff09;是一种编程范式&#xff0c;Java 完全遵循这一范式&#xff0c;并具备封装、继承和多态三大核心特性。 1. 封装 封装是将数据和操作封装在类中&#xff0c;通过访问修饰符&#xff08;如 public、private、protected&am…...

保姆级避坑指南:在Windows上用VirtualBox 6.0.24跑Ubuntu,从开机报错到完美显示的完整流程

从开机报错到完美显示&#xff1a;VirtualBox 6.0.24运行Ubuntu全流程实战手册 当你第一次在Windows上用VirtualBox启动Ubuntu虚拟机时&#xff0c;那个刺眼的报错提示可能会让你措手不及。别担心&#xff0c;这几乎是每个虚拟化新手都会经历的"成人礼"。本文将带你完…...

基于MATLAB的buck-boost升降压斩波电路系统设计 本设计包括设计报告,仿真工程

基于MATLAB的buck-boost升降压斩波电路系统设计 本设计包括设计报告&#xff0c;仿真工程。 Buck-Boost斩波电路是一种特殊的DC-DC转换器&#xff0c;它具备独特的功能&#xff0c;能够灵活地处理输入电压与输出电压之间的关系。 这种电路不仅能够将输入电压降至低于输出电压的…...

共享店铺模式小程序开发方案

共享店铺模式是一种将线下实体店铺资源通过数字化手段进行整合与共享的商业模式&#xff0c;小程序作为轻量级应用非常适合实现这一目标。以下是开发共享店铺模式小程序的关键要点&#xff1a;核心功能模块设计用户端功能需包含注册登录、店铺浏览、预约下单、支付系统、评价反…...

Kubernetes + LLM 实战:如何用 Gateway API Inference Extension 优化推理服务(附避坑指南)

Kubernetes LLM 实战&#xff1a;Gateway API Inference Extension 深度优化指南 在当今AI技术迅猛发展的背景下&#xff0c;大语言模型(LLM)已成为企业智能化转型的核心驱动力。然而&#xff0c;当这些复杂的模型需要部署到生产环境时&#xff0c;传统的Kubernetes路由方案往…...

ILI9341 TFT驱动库:裸机SPI显示驱动设计与优化

1. SPI_TFT_ILI9341 库概述SPI_TFT_ILI9341 是一个面向嵌入式平台的轻量级图形驱动库&#xff0c;专为基于 ILI9341 显示控制器的 2.4 英寸、240320 分辨率 SPI 接口 TFT-LCD 模块设计。该库不依赖操作系统&#xff0c;可直接运行于裸机环境&#xff08;Bare Metal&#xff09;…...

实时手机检测-通用效果对比:YOLOv5s/v8n/DAMOYOLO-S三模型同图评测

实时手机检测-通用效果对比&#xff1a;YOLOv5s/v8n/DAMOYOLO-S三模型同图评测 1. 引言&#xff1a;为什么需要更好的手机检测模型&#xff1f; 想象一下&#xff0c;你正在开发一个智能会议室管理系统&#xff0c;需要自动检测参会者是否在会议期间违规使用手机。或者&#…...

不止于教程:用QGIS 3.30 + PyQt5从零打造一个极简版GIS桌面应用

从零构建GIS桌面应用&#xff1a;QGIS 3.30与PyQt5深度整合实战 当我们需要开发一个轻量级地理信息系统时&#xff0c;QGIS的Python API提供了强大而灵活的选择。不同于简单的脚本编写&#xff0c;将QGIS作为引擎嵌入到自定义PyQt5应用中&#xff0c;能够实现高度定制化的GIS解…...

7个实用技巧!Java Faker数据质量保证:如何验证生成数据的准确性和多样性

7个实用技巧&#xff01;Java Faker数据质量保证&#xff1a;如何验证生成数据的准确性和多样性 【免费下载链接】java-faker Brings the popular ruby faker gem to Java 项目地址: https://gitcode.com/gh_mirrors/ja/java-faker Java Faker是一个强大的Java库&#x…...

Windows 11 任务栏透明美化神器:TranslucentTB 完全使用指南

Windows 11 任务栏透明美化神器&#xff1a;TranslucentTB 完全使用指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 想要让 Windows …...

Modules 模块化:头文件地狱真的要终结了吗?我持怀疑态度

各位来宾&#xff0c;各位技术同仁&#xff0c;大家好&#xff01;今天我们齐聚一堂&#xff0c;探讨一个在C社区引发广泛讨论、充满期待又饱含争议的话题&#xff1a;C模块化。特别是关于“头文件地狱真的要终结了吗&#xff1f;”这个问题&#xff0c;我深知在座的许多人&…...