在我的新款MacBook中,我安装了最新的Android Studio。然后,在终端中,我创建了.bash_profile,并在文件中添加了以下行:
export ANDROID_HOME=~/Library/Android/sdk
export ANDROID_TOOLS=$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform_tools
export PATH=$PATH:$ANDROID_TOOLS
之后,我运行命令source .bash_profile
,然后输入adb
命令,但得到adb未被识别为命令的错误。为什么?我还echo $PATH
,我看到Android sdk的platform_tools
目录就在那里&该目录下有adb文件。
======更新=====
有趣的是,如果我这样做,它可以工作:
export PATH=$PATH:/Users/myname/Library/Android/sdk/platform-tools
export PATH=$PATH:/Users/myname/Library/Android/sdk/tools
export ANDROID_HOME=/Users/myname/Library/Android/sdk
为什么?不是~
与/Users/myname
相同吗?为什么我的原始脚本不起作用,但上面的脚本有效?我不明白......请有人向我解释。
答案 0 :(得分:3)
根据shell的不同,export
变量定义的处理方式可能与正常分配不同 - 特别是tilde expansion可能根本不会发生。
如果是这种情况,那么即使此变量在其他地方扩展,变量中的每个未解析的波浪号都将保持未解析状态。 According to the docs:
扩展的顺序是:支撑扩展;波浪扩展,参数和可变扩展,< ...>
您可能想尝试一下:
ANDROID_HOME=~/Library/Android/sdk
export ANDROID_HOME
export ANDROID_TOOLS=$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform_tools
export PATH=$PATH:$ANDROID_TOOLS
如果它没有帮助,您也可以尝试$HOME
:
ANDROID_HOME=$HOME/Library/Android/sdk
export ANDROID_HOME
答案 1 :(得分:1)
这个非常基本的东西:
在当前目录(./)中执行命令“adb”
./adb(你说这个有效)
你想要的是adb(从PATH变量中找到执行命令adb),如果在 PATH 变量中的所有路径中搜索后找到命令“adb”,则执行命令adb,在其中找到它。
路径条目中的共同前体是“。” (当前目录)但由于可执行名称滥用(随机目录中的相同名称)而不鼓励
不同的路径由路径分离变量分隔(在windows中它是分号“;”UNIX通常冒号“:”ALSO MAC )。
您的多个导出 SEEM 要相互覆盖,请使用相应的分隔符“:”执行一次,并将所有路径合并为一个(或始终包含$ PATH:保留所有以前的出口)
它应该在../somewhere../sdk/platform-tools/adb
(你的SDK所在的位置)导出PATH = $ PATH:/ Users / myname / Library / Android / sdk / platform-tools似乎没问题(小心不要覆盖它[擦除])。
重新启动后,所有路径都应该受到尊重
的 NB 强>
在UNIX中,我们有“which adb”命令告诉我们可执行文件所在的位置。在使用像cygwin这样的工具的Windows中,我们也可以做同样的事情
我相信Mac有自制软件。
答案 2 :(得分:1)
在您的示例中,所有行都正常(但要特别注意platform_tools
文件夹的名称):
export ANDROID_HOME=~/Library/Android/sdk
export ANDROID_TOOLS=$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform_tools:$ANDROID_TOOLS
source .bash_profile
adb
所以,你有一个错误:
platform_tools
而不是:
platform-tools
此外,你可以尝试这个解决方案,它工作正常:
# print two export commands to your ~/.bash_profile
echo "export ANDROID_HOME=/Users/swift/Library/Android/sdk" >> ~/.bash_profile
echo "export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools" >> ~/.bash_profile
# Refresh bash profile (or restart Terminal.app)
source ~/.bash_profile
# Start using your adb command
adb --version
adb devices