Eclipse找不到adb。

3

我花了几个小时将我的/home移动到自己的分区,然后重新安装Ubuntu 10.10。没有遇到任何问题。我重新安装Eclipse,一切都正常:ADT插件已安装,我的工作区设置正确,它甚至记得我的上次会话。但是当我尝试运行Android项目时,我得到了这个错误:

[2011-05-28 21:28:13 - Game] The connection to adb is down, and a severe error has occured.
[2011-05-28 21:28:13 - Game] You must restart adb and Eclipse.
[2011-05-28 21:28:13 - Game] Please ensure that adb is correctly located at '/home/evan/android-sdk/platform-tools/adb' and can be executed.

实际上adb位于/home/evan/android-sdk/platform-tools,是可执行文件。并不只是Eclipse:我可以cd到platform-tools并运行adb命令(./adb logcat),但是我会得到bash: ./adb: No such file or directory的错误提示。

我重新安装了SDK platform-tools,但没有帮助。

strace:

execve("/home/evan/android-sdk/platform-tools/adb", ["/home/evan/android-sdk/platform-"...], [/* 41    vars */]) = -1 ENOENT (No such file or directory)
dup(2)                                  = 3
fcntl(3, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7c4c7b3000
lseek(3, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
close(3)                                = 0
munmap(0x7f7c4c7b3000, 4096)            = 0
exit_group(1)                           = ?

以及整个 platform-tools 目录:

-rwxrwxrwx 1 evan evan  3747857 2011-05-28 21:27 aapt
-rwxr-xrwx 1 evan evan   363197 2011-05-28 21:27 adb
-rwxrwxrwx 1 evan evan   906338 2011-05-28 21:27 aidl
-rwxrwxrwx 1 evan evan   328445 2011-05-28 21:27 dexdump
-rwxrwxrwx 1 evan evan     2603 2011-05-28 21:27 dx
drwxr-xr-x 2 evan evan     4096 2011-05-28 21:27 lib
-rwxrwxrwx 1 evan evan 14929076 2011-05-28 21:27 llvm-rs-cc
-rw-r--r-- 1 evan evan   332494 2011-05-28 21:27 NOTICE.txt
-rw-r--r-- 1 evan evan      291 2011-05-28 21:27 source.properties

不行,我不能在/home目录下运行任何可执行文件。 - herpderp
哦,但是要明确一点,我无法运行的只是应用程序/x-executable类型。Shell脚本和Java可执行文件似乎都可以。 - herpderp
那么看起来可能是您的操作系统在该分区上执行某些操作,我建议在Serverfault上创建一个帖子以获得更快的帮助。 - Nicklas A.
Server Fault上进行了交叉发布。 - Caleb
运行“mount -v”命令,我猜测你的主目录分区使用了“noexec”选项进行挂载。这就是为什么strace会向你显示该信息,但是我本来期望能看到更有意义的错误提示。 - Diego Torres Milano
显示剩余3条评论
4个回答

5
问题在于可执行文件是针对32位架构制作的,而我正在运行amd64。很容易解决,只需安装ia32-libs包即可。

1

运行

$ strace /home/evan/android-sdk/platform-tools/adb

验证adb缺少什么。可能是共享库?

但如果问题不仅限于adb,实际上您无法从新创建的主目录分区执行任何其他程序,那么问题可能在于您用于挂载分区的选项。 运行

$ mount -v | grep home

并验证选项'noexec'不存在,否则这就是您无法从那里执行文件的原因。 更改/etc/fstab中的挂载选项,问题将得到解决。


如果您找到了解决方案,是否介意接受其中一个答案? - Diego Torres Milano

1

是时候重新安装 Android 软件了。


OP已经说过:“我重新安装了SDK平台工具,但没有帮助。” - Matt Ball
他这样做了。然而,它无法执行。他应该清除所有的Android相关内容,重新安装,并测试从命令行执行是否可行。 - Ted Hopp
我下载了一个全新的Android SDK起始包,为其安装了新的平台工具...但我仍然无法通过bash运行其adb。 - herpderp
Java的安装或配置可能存在问题吗? - Ted Hopp
你的猜测和我一样好……我没有看到任何其他与Java相关的问题。但事实证明,我无法运行android-sdk目录中的任何可执行文件。我得到了相同的“没有这个文件或目录”的错误。 - herpderp
奇怪。你能在该目录中创建一个简单的shell脚本(与adb具有相同的所有者和组),并执行它吗? - Ted Hopp

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,