【问题标题】:Adb install/uploading of apk taking agesadb 安装/上传 apk 需要很长时间
【发布时间】:2013-06-22 15:38:28
【问题描述】:

我在我的设备(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 命令开关强制重新安装解除对设备冻结状态的阻塞。

【问题讨论】:

  • 这可能不是安装需要时间,而是让开发机器意识到它已经完成。从命令行终端尝试 adb install -r your.package.apk。 .apk 可能位于项目的 bin/ 文件夹中。
  • 也尝试将设备重置为出厂默认设置
  • 我已将设备重置为出厂默认设置,但没有帮助。这是我最好的运气。它在我的其他设备上仍然可以正常工作,所以我猜这是我 PC 上 adb 安装的设置或缓存中的东西。
  • 你的命令行安装尝试的结果是???
  • 好的,我确认运行命令行“adb install -r my.package.apk”正在解除我在上传时遇到的冻结设备状态。命令行工作正常,上传也可以在 Eclipse 下重新工作,无需重新启动。仍然是一个烦人的错误,但很容易解决。谢谢!!!

标签: android adb


【解决方案1】:

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

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

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

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

【讨论】:

  • 你能测量一下电缆的阻抗吗?
  • 我不知道该怎么做。
  • 正如@Donovanr 指出的那样,更改USB 端口对我来说是这样的
  • 我已经在我的 mac 上切换了一个端口,它立即工作。我认为要么是端口,要么是电缆。
  • 将电缆更改为原始电缆也对我有用。我认为我们应该将原装电缆与包装盒中提供的设备一起使用。本地供应商电缆是罪魁祸首。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

    那里有很多,你尝试了哪些,所以我们知道不建议那些?

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

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

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

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

    【讨论】:

    • 我把超时设置改成了10s,过了这个时间就超时了。
    • 我的很多安卓项目都有这个问题,和这个应用程序无关。我还尝试打开/关闭 USB 调试模式,并尝试完全重启设备。我什至已将其重置为出厂默认设置。
    【解决方案4】:

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

    1. 附加设备列表 41006XXXXXXX 设备
    2. 附加设备列表 41006cXXXXXX 未经授权

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

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-01-16
        • 2018-02-16
        • 2021-02-15
        • 1970-01-01
        • 2020-03-20
        • 1970-01-01
        • 2012-08-03
        • 2018-08-08
        • 2017-03-05
        相关资源
        最近更新 更多