Adb安装/上传apk年龄

时间:2013-06-22 15:38:29

标签: android adb

我在我的设备(Galaxy SPlus和Nexus 10)上传我的应用程序时从来没有遇到任何问题,但由于一个未知的原因,现在在我的Nexus 10上上传APK需要很长时间...我试过20次,我到了最后只有一次。

有没有人知道如何调试/详细说明APK上传以了解它的速度?我不知道APK上传的方式是什么,有人能给我一个在哪里寻找的提示吗?我想调查,但我不知道该怎么办?

设备正确响应adb命令,我可以在Eclipse下看到它,我可以使用DDMS文件浏览器下载/上传文件,一切正常,但是在运行/调试我的应用程序时,Eclipse会遇到“上传” my-application.apk到设备'R32D1035MCE'“。

你能帮忙吗?

编辑:

我已将设备重置为出厂默认设置,但没有任何帮助。

此外,我在环境设置中启用了ADB_TRACE = all的跟踪,并且跟踪显示adb正在等待某些内容,但我不知道。

编辑:

仍在调查,我的Nexus 10再次正常工作,然后突然停止工作。在DDMS日志中,我有以下错误消息:

[2013-06-23 01:09:30 - ddmlib] An established connection was aborted by the software in your host machine
java.io.IOException: An established connection was aborted by the software in your host machine
    at sun.nio.ch.SocketDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:89)
    at sun.nio.ch.IOUtil.write(IOUtil.java:60)
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:450)
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
    at com.android.ddmlib.Client.sendAndConsume(Client.java:607)
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:453)
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:835)
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:803)
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:621)
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580)

看起来与此问题有关:An established connection was aborted by the software in your host machine

但是没有一个解决方案适合我。

有没有办法重置adb正在对设备进行的网络连接?

编辑:已经找到了chris-stratton建议的解决方案,使用“adb install -r package.apk”,使用-r命令开关强制重新安装解锁设备冻结状态。

5 个答案:

答案 0 :(得分:8)

好的,我终于找到了答案。原因是我使用的是另一条迷你USB电缆,而不是Nexus设备提供的电缆。我正在以100%的速度复制它。

当我使用Galaxy SPlus的线缆时,Nexus不想上传文件(即使设备被识别,一切看起来都很好)。上传永远不会结束。

反之亦然,当我的Nexus 10的USB线缆设备与我的Galaxy SPlus一起使用时,这次设备本身无法识别。

我在两台不同的电脑上试过了。我认为迷你USB线都兼容。但不是。我没有的答案是:为什么?

答案 1 :(得分:4)

不同的USB线缆解决方案略有不同,我刚刚切换USB端口;问题解决了。这甚至在重新启动桌面和手机之后还不够。

答案 2 :(得分:1)

我不知道如何监控APK的上传速度,所以以下内容无法帮助加快转移,但如果您的意思是转移因超时而失败,那么您可以更改该值Window->Preferences->Android->DDMS->ADB Connection time out

我的设置为10000(10秒)并且很少失败。

  

但是没有一个解决方案适合我。

那里有很多,你试过哪些,所以我们知道不提议那些?

  

有没有办法重置adb正在对设备进行的网络连接?

您可以通过转到DDMS透视图并在“设备”部分中单击“最大化”附近的向下三角形并从“设备”子窗口的“最小化”按钮转到包含“重置ADB”的菜单,从eclipse重置ADB。

您还可以尝试让您的设备退出USB调试模式并重新启动或重新启动它(尽管它已经成为重置为出厂默认设置的一部分,但它不太可能正常工作)。

此外,上传其他应用程序是否有效?如果您的工作区中只有一个项目,请尝试使用File - >新 - >其他 - > Android - > Android示例项目(其中任何一个)。

答案 3 :(得分:0)

我也遇到了这个问题。 输入windows命令:adb devices后,有(至少)2种可能性:

  1. 附加设备列表41006XXXXXXX设备
  2. 未经授权的设备列表41006cXXXXXX
  3. 第二行表示设备与PC的连接问题。 我在配置我的手机进行调试时解决了这个问题,然后它运行得很好。

答案 4 :(得分:0)

当我由于某种原因未能将 SIGABRT 发送到 adb 进程(例如 adb shell 命令)时,我见过类似的情况。

ps -xo pid,comm | grep adb | xargs kill -9