9

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

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

设备正确响应 adb 命令,我可以在 Eclipse 下看到它,我可以使用 DDMS 文件资源管理器下载/上传文件,一切正常,但是在运行/调试我的应用程序时,Eclipse 卡在“上传我的应用程序” .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)

看起来与此问题有关:已建立的连接被主机中的软件中止

但是给出的解决方案都不适合我。

有没有办法重置 adb 对设备所做的网络连接?

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

4

5 回答 5

11

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

当我使用 Galaxy SPlus 的电缆时,Nexus 不想上传文件(即使设备已被识别,并且一切看起来都很好)。上传永无止境。

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

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

于 2013-08-03T17:12:52.283 回答
5

不同 USB 电缆解决方案的一个细微变化是我只是切换了 USB 端口;问题解决了。即使在重新启动我的桌面和手机之后也是如此,这还不够。

于 2014-01-13T03:22:53.153 回答
2

我不知道如何监控 APK 的上传速度,因此以下内容无助于加快传输速度,但如果您的意思是传输因超时而失败,那么您可以在Window->Preferences->Android->DDMS->ADB Connection time out.

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

但是给出的解决方案都不适合我。

那里有很多,你尝试了哪些,所以我们知道不要提出这些?

有没有办法重置 adb 对设备所做的网络连接?

您可以通过 DDMS 透视图从 Eclipse 中重置 ADB,然后在设备部分单击该设备子窗口的最大化和最小化按钮附近的向下三角形,以进入包含重置 ADB 的菜单。

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

另外,上传其他应用程序有效吗?如果您的工作区中只有一个项目,请尝试 File -> New -> Other -> Android -> Android Sample Project(其中任何一个)。

于 2013-06-22T15:46:55.393 回答
0

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

  1. 连接的设备列表 41006XXXXXXX 设备
  2. 连接的设备列表 41006cXXXXXX 未经授权

第二行表示设备与 PC 的连接问题。我在配置我的手机进行调试时解决了这个问题,然后它工作得很好。

于 2015-10-12T12:28:20.887 回答
0

当我出于某种原因未能将 SIGABRT 发送到 adb 进程(例如 adb shell 命令)时,我已经看到过这样的事情。

ps -xo pid,comm | grep adb | xargs kill -9
于 2021-02-11T20:18:30.580 回答