android studio官方网站关于android SDK环境变量的设置说明晦涩难懂

这是它中文版原文:
您可以通过设置环境变量来配置 Android Studio 和命令行工具的行为。其中一个最有用的环境变量之一是 ANDROID_HOME,很多工具都会读取该变量来确定 Android SDK 安装目录。如需通过命令行运行工具,而不包含可执行文件的完整路径,请将命令搜索路径环境变量设置为包含 ANDROID_HOME/tools、ANDROID_HOME/tools/bin 和 ANDROID_HOME/platform-tools。

先说简单结论,后面的长篇大论,愿意深入了解的朋友再看。
“命令搜索路径环境变量”这句话是相当绕口,其实就是环境变量当中那个名为path的变量。
虽然安卓studio官网有很多内容写得晦涩难懂,但是很多内容其实都有点进去进一步说明的选项,虽然这也可能反倒让人更迷糊(因为里面可能让人看不懂的地方更多了),但多一些参考资料,总比啥都没有说明来得强。

回到正文,我最开始是看不懂它那个基础说明的,也是问了AI才搞明白的(主要是令自己回忆起了久远的知识,结合起来就弄懂了)。

我先说说我的理解,对于大部分的程序员来讲,其实都知道怎么设置环境变量,如果需要系统级别的,就在系统那个环境变量上改,如果需要用户级别的,就在用户级别的环境变量上改。
通常系统级别的环境变量需要重启电脑。而用户级别似乎不用重启(我很少改用户级别的环境变量,不太确定这一点)。主要是考虑到系统级别环境变量可以对任意用户都起作用,所以我本人习惯性改系统级别的环境变量。
然后通常改法,一般要么就是找path,然后在里面添加对应的需要访问到的文件或可执行程序的路径。
要么就是完全新建一个环境变量,变量的名字和值(键值,是这么理解的吧?我也不太确定哈)都由自己来填。当然,因为特定程序的要求,通常名字也是它们指定了的。比如安卓这个,它要求你新建的环境变量的名字是ANDORID_HOME,你就得照着它这个来,不然人家程序不认识,这个值是对应的Android SDK的路径。
这个,我刚看它们安卓studio官网的说明倒是一下就知道。只是后面几个就有点困惑了,尤其是它这句话,我看完愣是没看明白:请将命令搜索路径环境变量设置为包含 ANDROID_HOME/tools、ANDROID_HOME/tools/bin 和 ANDROID_HOME/platform-tools。
也是让AI给我汉语转汉语地翻译了一波才搞懂,简直了。
说白了,就是要把这后面几个路径添加到path当中。可像“ANDROID_HOME/tools”这样的根本不是路径,那玩儿个蛋啊。然后我就问AI了,其实AI给的答案也有一点点误导性,后面我会贴出来AI的回答。
要不是起以前见过类似的东西,我都忘了这茬了。这茬是哪茬?就是环境变量的引用问题。
在环境变量当中,存在着一个环节变量引用另一个环境变量的情况,最早我是在安装JDK的时候碰到的。很久以前的事情了。这里不扯远了,我们就谈安卓这个SDK,它官方既然举例,那就不会无缘无故放个ANDROID_HOME在这里吧?而且它前面既然命名了名为ANDROID_HOME的环境变量,后面这几个内部的文件夹,其实应该是鼓励用户通过引用来填写的。
在windows当中,可以通过在path的值当中用两个%把一个环境变量包裹起来,从而引用它的值。
比如%ANDROID_HOME%\tools这其实就是引用了ANDROID_HOME的值(在这里我们知道是AndroidSDK所在的路径)后面加个\tools,连起来就是安卓SDK(我这里打中文了,老打那个Android真的折磨人)目录下的tools目录这个路径。
剩下两个也是同样理解,只要使用了%ANDROID_HOME%,就等于用了安卓SDK的路径,只不过后面跟的目录不同,就对应到不同的路径了。

这样做的好处是,只需要修改一个ANDROID_HOME的路径,剩下的也跟着变过来了。AI的答案虽然也没毛病,但是它实际上没有考虑到环境变量的相互引用这一层。
说白了还是要见的错误情况够多,才能熟能生巧一下子反应过来。

linux上的环境变量我不太熟悉,这里就不班门弄斧了,只提供下AI的答案:
Windows
右键点击“我的电脑”或“此电脑”,选择“属性”。
点击“高级系统设置”。
在系统属性窗口中,点击“环境变量”。
在“系统变量”区域,找到并选择“Path”变量,然后点击“编辑”。
在编辑界面,点击“新建”,添加以下三个路径(确保把[你的Android SDK路径]替换成你的实际路径):
[你的Android SDK路径]\tools
[你的Android SDK路径]\tools\bin
[你的Android SDK路径]\platform-tools
点击“确定”保存更改。
macOS/Linux
打开终端。
你需要编辑 .bash_profile, .bashrc 或 .zshrc 文件,这取决于你使用的是哪种shell。可以使用文本编辑器,例如使用命令 nano ~/.bash_profile。
在文件的末尾,添加以下行(确保把[你的Android SDK路径]替换成你的实际路径):
bash
Copy code
export PATH= P A T H : [ 你的 A n d r o i d S D K 路径 ] / t o o l s e x p o r t P A T H = PATH:[你的Android SDK路径]/tools export PATH= PATH:[你的AndroidSDK路径]/toolsexportPATH=PATH:[你的Android SDK路径]/tools/bin
export PATH=$PATH:[你的Android SDK路径]/platform-tools
保存文件并关闭编辑器。
在终端中,运行 source ~/.bash_profile(或相应的文件名),以使更改生效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/586579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新版 macos下安装python 2.7 python 3.x多版本简单方法 pyenv python多版本管理工具

在新版本的macos中已经将默认的python升级成了3.x , 今天介绍一个简单的方法在新版本的macos中快速安装 python 2.7的方法, 就是使用brew安装python版本管理工具 pyenv来安装python2.7 # 安装pyenv版本管理工具 brew install pyenv # 安装python2.7 可以安装多个版本的ptyhon…

如何将一个JSON字符串解析为JavaScript对象或值

JSON.parse(JSON.stringify(data)) 将后端传入的JSON数据data放入该方法的参数中,返回的结果就是JavaScript对象 比如将后端传入的对象key作为对象,而不是字符串双引号格式 {"path": "/home","name": "home",…

C#进阶-IIS应用程序池崩溃的解决方案

IIS是微软开发的Web服务器软件,被广泛用于Windows平台上的网站托管。在使用IIS过程中,可能会遇到应用程序池崩溃的问题,原因可能有很多,包括代码错误、资源不足、进程冲突等。本文将为大家介绍IIS应用程序池崩溃的问题分析和解决方…

【计算机毕业设计】python+django数码电子论坛系统设计与实现

本系统主要包括管理员和用户两个角色组成;主要包括:首页、个人中心、用户管理、分类管理、数码板块管理、数码评价管理、数码论坛管理、畅聊板块管理、系统管理等功能的管理系统。 后端:pythondjango 前端:vue.jselementui 框架&a…

MySQL数据库的安装与环境配置

下载 下载MySQL8 安装 解压 配置MySQL环境变量 系统环境变量path D:\ProgramFiles\mysql-8.0.20-winx64\bin 1.点击属性 2.点击高级系统设置 3.点击环境变量 4.在系统变量中找到path 注意这里不是用户变量 5.新建后输入解压的地址 MySQL初始化和启动 以管理员身份运行cmd…

【12月比赛合集】4场可报名的「创新应用」、「数据分析」和「程序设计」大奖赛,任君挑选!

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号会推送最新的比赛消息,欢迎关注! 以下信息仅供参考,以比赛官网为准 目录 数据分析赛(1场比赛)程序设计赛&#…

汽车制造厂批量使用成华制造弹簧平衡器

数年来,成华制造都在不断的向各行各界输出着自己的起重设备,与众多企业达成合作,不断供应优质产品。近些年,成华制造以其卓越的产品质量和高效的生产能力,成功实现了弹簧平衡器的大规模批量供应,为重庆数家…

[leetcode ~go]三数之和 M

:::details 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a b c 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1: …

Linux下Web服务器工作模型及Nginx工作原理详解

文章目录 1. 工作模型概述1.1 阻塞、非阻塞、同步、异步浅析1.2 Web服务器处理并发请求的方式 2. Linux下的I/O模型2.1 常用I/O模型2.2 对比以上模型 3. Nginx工作原理3.1 Nginx基本架构3.2 Nginx代码结构3.3 Nginx工作流程3.4 Nginx缓存机制3.5 Nginx缓存工具:Memc…

STM32F407ZGT6定时器(学习笔记一)

定时器STM32非常重要的外设,也是比较复杂的外设,下面以STM32F407ZGT6为例记录学习内容:(1)基本定时功能,(2)PWM输出功能,(3)PWM互补死区、多通道移…

代数结构与图论

文章目录 图的基本概念欧拉图与哈密顿图树平面图代数系统群与环格与布尔代数 图的基本概念 图的阶:图中的顶点数 ,n 个顶点被称为 n 阶图零图:一条边都没有 平凡图:一阶零图基图:将有向图的各条有向边改成无向边所得到…

javascript 常见事件

简介: JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式…

python+django超市进销存仓库管理系统s5264

本次设计任务是要设计一个超市进销存系统,通过这个系统能够满足超市进销存系统的管理及员工的超市进销存管理功能。系统的主要功能包括:首页、个人中心、员工管理、客户管理、供应商管理、承运商管理、仓库信息管理、商品类别管理、由管理员和员工&#…

C. Load Balancing 一个序列同时加一个数和减一个数,直到最大和最小之间相差最大为1(结论可记住)

题目: https://atcoder.jp/contests/abc313/tasks/abc313_c 思想:1.给定一个固定的B,求使A等于B所需的最小运算次数 2.在所有最大值和最小值最多相差1的B中,找出一个所需的运算次数最少的,即1 做法:构造…

python dash call_back 多output 7

效果 代码 # 导入Dash库及其相关组件,用于构建交互式Web应用 from dash import Dash, dcc, html, Input, Output, callback# 定义一个外部样式表,用于美化应用界面 external_stylesheets [https://codepen.io/chriddyp/pen/bWLwgP.css]# 创建一个D…

互联网加竞赛 基于Django与深度学习的股票预测系统

文章目录 0 前言1 课题背景2 实现效果3 Django框架4 数据整理5 模型准备和训练6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于Django与深度学习的股票预测系统 ** 该项目较为新颖,适合作为竞赛课题方向&#xff…

php学习05-常量

常量可以理解为值不变的量。常量值被定义后,在脚本的其他任何地方都不能改变。一个常量由英文字母、下划线和数字组成,但数字不能作为首字母出现。 在PHP中使用define()函数来定义常量,该函数的语法格式如下: define(string cons…

【双十一特辑】爱心代码(程序员的浪漫)-李峋

前言 最近《点燃我温暖你》中李峋的爱心代码超级火,看着特别心动,这不,光棍节快到了,给兄弟们教学一波爱心代码,赶在双十一前表白,让这个双十一不在是孤单一个人! 目录 前言 C语言简易爱心代码…

[大厂实践] Chick-fil-A的服务API流程实践

本文介绍了美国快餐连锁巨头Chick-fil-A在技术团队中引入Buf和Connect解耦API依赖并实现了良好的API定义模式。原文: Connect(ing) Chick-fil-A 背景 2018年,Chick-fil-A的客户技术团队遇到了一些API问题。该团队擅长构建API,这些API可以实现一些了不起的…

【Spring实战】13 Security+Thymeleaf自定义登录页面

文章目录 1. 执行流程2. 为什么要自定义登录页面3. 创建登录页面4. 配置 Spring Security5. 创建请求 API6. 启动服务7. 验证8. 代码详细总结 Spring Security 是一个强大的身份验证和访问控制框架,而 Thymeleaf 是一个用于构建动态 Web 页面的强大模板引擎。结合它…