【问题标题】:ADB commandline Hanging during install (PhoneGap)安装期间挂起的 ADB 命令行 (PhoneGap)
【发布时间】:2014-02-13 07:12:43
【问题描述】:

我的 Phonegap 应用拒绝加载到我的 Android 设备上(即使是 HellowWorld 默认应用也拒绝加载)

直到今天,一切都运行良好。 这是我的控制台日志:

***\>adb devices
List of devices attached
4c05609b        device

***\>phonegap run --device -V android
[phonegap] detecting Android SDK environment...
[phonegap] using the local environment
[phonegap] compiling Android...
[phonegap] Generating config.xml from defaults for platform "android"
[phonegap] Compiling app on platform "android" via command "cmd" /c ***\platforms\android\cordova\build
[phonegap] Platform "android" compiled successfully.
[phonegap] successfully compiled Android app
[phonegap] installing app onto device
[phonegap] Generating config.xml from defaults for platform "android"
[phonegap] Running app on platform "android" via command "cmd" /c ***\platforms\android\cordova\run --device

它只是坐在那里说跑步……永远。

我打开了另一个终端窗口,其中adb logcat 正在运行,并且在某个时刻(可能在打印最后一行的 10-15 秒后)它停止记录。进程的终止和随后对adb logcat 的调用导致更多挂起(根本没有日志记录)

所以我必须做一个 kill-server, start-server 来打破这种无休止的挂起,此时 phonegap 进程终止:

       [error] An error occurred while running the android project.
***\platforms\android\cordova\node_modules\q\q.js:126
                    throw e;
                          ^
ERROR: Failed to launch application on device: ERROR: Failed to install apk to d
evice: Error executing "adb -s 4c05609b install -r "***\platforms\android\bin\Po
ached-debug-unaligned.apk"": protocol failure

我试过了::

  • 删除我在 C:\Users\Name 中的 .cordova 文件夹
  • 直接运行 adb 安装(没有 phonegap)
  • 部署到模拟器(同样的问题)
  • 拔下/重新插入设备
  • 重启所有设备
  • 在设备上切换“开发者模式”并撤销 USB 调试权限

我完全没有想法!

非常感谢任何提示或线索。

亚行版本 1.0.31

运行 Android v4.3 的 Galaxy S3


编辑:

部署到模拟器声称成功完成,但应用永远不会打开,也不会出现在模拟器内的应用列表中。所以我也没有办法在模拟器上实际测试它。

非常感谢您的帮助。


编辑 2:

经过进一步修改后,我发现我的问题可以更具体地描述为 当我尝试与我的设备通话时 ADB 挂起(冻结)。我确定这是因为 adb shelladb installadb push 都以与上述相同的方式失败。没有错误,只是有限的等待。

adb logcatadb devices 和其他读取功能工作正常,直到上述写入功能之一挂起,在这种情况下我需要执行 adb kill-serverTASKKILLadb logcat 再次工作。

不确定这些添加的信息是否有帮助,但你去吧。我还没有尝试过的最后一件事是按照this fellow 的建议对我的手机进行恢复出厂设置。如果我不能很快找到解决方案,我会尽我所能备份我的数据并尝试这样做......

请在这成为我最后的选择之前救救我!

【问题讨论】:

  • 几个问题:您使用的是什么设备?它运行的是什么版本的android?您最近是否更新了操作系统,或者您的 USB 调试设置已更改?
  • 我将作为编辑包含在内,但它是运行 Android 4.3 的 S3。我没有做任何改变。它工作了几个星期,然后突然(中午)开始挂起。从那以后,我随机安装了 HelloWorld 应用,但大约每 30 次尝试一次,而且完全不可靠。
  • 您尝试过重启设备吗?我的银河大号也遇到了同样的情况。我重新启动了我的设备,之后没有任何问题
  • 是的,我重新启动了设备。我还开始使用第二台设备(运行 4.2 的 Nexus S),它有同样的问题。这个问题现在似乎更加零星了。它以上述方式失败,但在对 adb kill-server 进行几次(非常量且看似任意的数字)调用后,我可以在手机上构建。仍然想知道根本原因是什么......
  • 我在虚拟机内部工作时也遇到了这个问题。有趣的是,我有另一个虚拟机(非常相似)用于不同的项目,并且在使用同一设备时不会出现相同的行为。

标签: android cordova adb


【解决方案1】:

拔掉再插上设备通常会有帮助。

【讨论】:

    【解决方案2】:

    有相同的(原始)问题(在旧设备上使用科尔多瓦/测试),即。在安装过程中挂起。

    尝试直接从 cmd 行运行 adb install ...

    adb [-s <deviceID>] install <apk>
    

    ...同样的问题,所以不是科尔多瓦特有的....

    已打开 android 设备监视器 (ADM) ...

    ..sdk\tools>监视器

    ..再次从 cmd 行运行安装,看到 logcat 消息说包是 sdk 16 / 设备是 15...doh!

    所以回到 AndroidManifest.xml 并将 android:minSdkVersion 更改为 15 并再次恢复正常 - 安装工作正常。

    (出现问题是因为我安装了其他东西,它改变了 minSdkVersion,然后删除了其他东西,从不重置 minSdkVersion)

    因此,可能设备 sdk / android 版本对于您的构建来说太低了。如果没有,在您从命令行启动安装时查看 ADM logcat 输出可能会指出问题所在。

    【讨论】:

      【解决方案3】:

      在我的情况下 adb 似乎挂了,但实际上从 Mac 到模拟器的数据传输真的很慢:

      $ adb push platforms/android/build/outputs/apk/android-debug.apk /data/local/tmp/
      150 KB/s (15587200 bytes in 101.223s)
      

      在 USB 连接的真实设备上速度要快得多。不知道为什么...

      【讨论】:

        【解决方案4】:

        如果这对其他人有帮助,我遇到了类似症状的问题。 ADB install -r "apk path" 将无限期挂起。

        我排查了无数问题,发现这是我的 USB 电缆长度问题。

        我有一根 USB 延长线,因为我将设备插入其中。我的设备电缆和 USB 延长电缆的总长度导致了这个问题。移除延长线解决了这个问题,最终我用更短的延长线替换了我的 USB 延长线作为最终解决方案。

        【讨论】:

        • 我在这里几乎要哭着试图修复我的东西,然后我阅读了您的推荐并使用其他电缆进行了测试......有效。我一定会为此给你买啤酒。
        • 太棒了!很高兴我能帮忙:)
        • @TomazCanabrava 如果这个答案有帮助,请投票! :)
        • 将相同的 USB 电缆插入不同的端口对我来说是这样。
        • 更换电缆为我做了这件事,但我发现新电缆需要我将其固定在某个位置,以便设备注册它已完全插入。这可能归结为电缆或端口有点狡猾,所以我设置了通过 WIFI 安装的东西(请参阅futurestud.io/tutorials/…),现在没有电缆会导致问题!到目前为止好多了。
        【解决方案5】:

        这些问题似乎会随机解决。正如其他人所建议的,ADB kill-server、重启设备和重新安装 SDK 的任意组合似乎可以缓解问题(即使只是几次推送)。

        我仍然不知道导致这种挂起的原因,虽然迷信地相信上述任意组合修复它,但我不确定如何永久解决它。

        对于未来阅读本文的人,在给出可靠的解释之前,我唯一的建议是花一个小时左右的时间重新启动/重建您的开发环境......并确保您购买耐用的压力球。

        【讨论】:

        • 我遇到了类似的问题,在搜索它时,我将控制台单独留在了挂起状态。当我在研究后返回时,它在大约 2 分钟后开始安装。等待。
        • 等了几分钟后,我按下了 Ctrl+C。 adb 终端显示成功,再次可用。
        【解决方案6】:

        请尝试按照其他建议重新启动设备。根据我的经验,杀死 adb 进程,然后运行 ​​cordova run 命令有时会神奇地帮助。

        【讨论】:

        • 在任务管理器(windows)中杀死adb进程,然后是adb kill-server,然后是adb start-server,然后拔掉/重新插入设备就可以了。
        【解决方案7】:

        这里是在黑暗中拍摄的,但还有一些事情要尝试:

        1. 您使用的是工作 PC 还是其他设备?确保您具有 USB 写入权限。此外,尝试不同的 USB 端口和电缆。您的设备有最新的 USB 驱动程序吗?
        2. 尝试更新 SDK 工具。或者,某些东西已损坏,重新安装可能会奏效。
        3. 您的设备上有可用空间吗?
        4. 在两台设备上都检查了未知来源?
        5. 您的目标是什么版本的 Android?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-04-25
          • 1970-01-01
          • 1970-01-01
          • 2013-10-15
          • 1970-01-01
          • 2014-09-08
          • 1970-01-01
          • 2014-03-16
          相关资源
          最近更新 更多