' ADB'不被识别为命令

时间:2017-06-22 21:20:56

标签: android bash macos adb

在我的新款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相同吗?为什么我的原始脚本不起作用,但上面的脚本有效?我不明白......请有人向我解释。

3 个答案:

答案 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

enter image description here

所以,你有一个错误:

platform_tools

而不是:

platform-tools

enter image description here

此外,你可以尝试这个解决方案,它工作正常:

# 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