【发布时间】: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 下重新工作,无需重新启动。仍然是一个烦人的错误,但很容易解决。谢谢!!!