【发布时间】:2013-12-30 05:04:12
【问题描述】:
我刚买了一台全新的 Ubuntu 机器,我正在尝试设置 Android SDK。我对 Unix 很陌生,所以如果我犯了一个愚蠢的错误,请原谅我。
我按照here 的说明进行操作,一直到添加“规则”文件。现在,如果我在终端中尝试adb devices,它会给我“No command 'adb' found”错误,并询问我是否犯了拼写错误。
@USER:~/android-sdk-linux/platform-tools$ ls
NOTICE.txt adb api fastboot source.properties systrace
@USER:~/android-sdk-linux/platform-tools$ adb devices
No command 'adb' found, did you mean:
Command 'cdb' from package 'tinycdb' (main)
Command 'gdb' from package 'gdb' (main)
Command 'dab' from package 'bsdgames' (universe)
Command 'zdb' from package 'zfs-fuse' (universe)
Command 'kdb' from package 'elektra-bin' (universe)
Command 'tdb' from package 'tads2-dev' (multiverse)
Command 'pdb' from package 'python' (main)
Command 'jdb' from package 'openjdk-6-jdk' (main)
Command 'jdb' from package 'openjdk-7-jdk' (universe)
Command 'ab' from package 'apache2-utils' (main)
Command 'ad' from package 'netatalk' (universe)
adb: command not found
我搜索了a couple of questions on StackOverflow,有人建议我使用apt-get install ia32-libs 命令来获取一些 32 位库。但是,我使用的是 64 位机器,所以不确定是否应该这样做。
我注意到的另一个奇怪问题是,即使我导航到 platform-tools 文件夹并执行 adb devices 命令,我也会收到相同的错误。因此,我可能在这里遗漏了其他内容,而不是错误地设置了 PATH 条目。
我尝试了download page 中的 ADB BUNDLE(.zip 文件)和 SDK 工具(.tgz 文件)并完成了上述所有步骤,但出现了同样的错误。
我使用的是 Ubuntu 12.04 LTS。
【问题讨论】:
-
当前目录不在你的
$PATH中。 -
echo $PATH 给了我这个:/usr/lib/lightdm/lightdm:/usr/local/bin:/usr/bin:/bin ---> 那么如果当前目录不在我的 PATH 中。如果我直接进入该目录/文件夹,“adb”命令应该可以工作,不是吗?
-
当你启动这样的命令时,shell 只会在
$PATH中查找它。当前目录也被查看并不是隐含的。如果您想要这种行为,您还需要将当前目录 (.) 添加到$PATH。 -
如果您不想与
$PATH混淆,另一种选择是将其限定为:shell$ ./adb <args> -
对 cd 到平台工具文件夹的建议来自熟悉 windows 的人。大多数理智的 shell(甚至是 Windows 上的 bash)在路径中都没有当前目录,这样人们就不会意外地运行他们不想要的东西。因此,去那个目录本身是行不通的。