2013-10-17 86 views
1

我刚刚在linux上安装了SDK。我之前使用过它,因为去年我做了一些Android工作,当时我对这些工具没有任何问题。adb永远等待运行模拟器

但是当前安装不会安装到仿真器上。 avd被激发起来的模拟器运行:

> adb devices 
List of devices attached 
emulator-5554 device 

> adb install blahblah.apk 
error: protocol fault (no status) 
- waiting for device - 

挂起,直到我杀了它。然后:

> adb devices 
List of devices attached 

> adb kill-server 
> adb start-server 
* daemon not running. starting it now on port 5037 * 
* daemon started successfully * 

> adb devices 
List of devices attached 
emulator-5554 device 

> adb -s emulator-5554 install blahblah.adk 
error: protocol fault (no status) 
- waiting for device - 

我一定经历了十几次这样的正常用户和root用户。我读this Q&A,并尝试与ADB_TRACE相同的东西。当杀死并重新启动服务器这使得一个奇怪的差异:在没有跟踪

> adb start-server 
system/core/adb/adb.c::main():Handling commandline() 
system/core/adb/adb_client.c::_adb_connect():_adb_connect: host:version 
system/core/adb/adb_client.c::adb_connect():adb_connect: service host:start-server 
* daemon not running. starting it now on port 5037 * 
ADB server didn't ACK 
* failed to start daemon * 

,它总是“守护进程启动成功”。但随后的adb devices再次显示模拟器。 “:协议故障(无状态)错误”:

system/core/adb/transport.c::readx():readx: fd=3 disconnected 
system/core/adb/adb_client.c::adb_connect():adb_connect: return fd -1 
error: protocol fault (no status) 

然后“等待装置”之前:现在试图adb install的之前产生丰富的调试输出,和右

system/core/adb/transport.c::readx():readx: fd=3 wanted=4 got=4 
4641494c FAIL 
system/core/adb/transport.c::readx():readx: fd=3 wanted=4 
system/core/adb/transport.c::readx():readx: fd=3 wanted=4 got=4 
30303130 0010 
system/core/adb/transport.c::readx():readx: fd=3 wanted=16 
system/core/adb/transport.c::readx():readx: fd=3 wanted=16 got=16 
646576696365206e6f7420666f756e64 device not found 
system/core/adb/adb_client.c::switch_socket_transport():Switch transport failed 
system/core/adb/adb_client.c::adb_connect():adb_connect: return fd -1 

我还没有发现任何类似报道上线。

+0

只是一个旁注:你试过genymotion?如果它工作,你可以节省时间修复这个问题+有一个更好的AVD! – bofredo

+0

您可以尝试使用sudo运行启动服务器。 – skywall

+0

正如前面提到的,我试图以普通用户和root用户身份进行操作。 @bofredo感谢您的提示。 – delicateLatticeworkFever

回答

1

绝望之余,我再次解压缩了SDK,希望它已经被破坏了,不用打开整个东西就可以将其从.zip中拉出来(为什么还要下载ADT包?)。

然后我运行SDK管理器,发现上次我没有安装更新的armeabi-v7a系统映像,所以我这样做了。然后我在两个SDK目录(这一个和今天早上的那个)上运行diff -rq,唯一报告的是armeabi-v7f映像目录中的东西(查看build.prop,其中一个比较旧)。

但是,安装.apk到模拟器第一次没有问题,hooray。也许在旧的系统映像中存在一个错误 - 如果奇怪的是没有更多的在线报告。

+0

嘿,我想我有类似的问题。它零星挂起,但是当它发生时我注意到了同样的transport.c :: readx()的东西。你能详细解释一下你如何解决它?可能会有点不同,因为我使用的是设备而不是仿真器,但值得一试。 – isick

+0

@isick我在去年年底每天使用SDK进行安装时没有更多的问题(几周前我更换了整个系统)。因此,我必须得出结论,这是当时随附的系统映像与即时更新的系统映像之间的区别。现在看看SDK管理器,我没有看到API 18的ARM EABI映像的多个版本,这是本来可以的,所以我假设一个替换了其他的... – delicateLatticeworkFever

+0

...也许是因为像这个?有人知道,大声笑。通过'system-images /'看看,我注意到它们不是超越它们所使用的API的版本(我猜''build.prop'中的日期),所以没有关于它的历史记录。我再次在网上搜索,看看是否有其他人报告过相同的问题,并没有发现任何东西,但** [这是这个](http://stackoverflow.com/questions/18150637/cant-show-android-device -in-ubuntu-13-04)**,我想你已经看到了? – delicateLatticeworkFever