我的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
我试过了
我完全没有想法!
非常感谢任何提示或线索。
ADB版本1.0.31
运行Android v4.3的Galaxy S3
修改
部署到模拟器声称成功完成,但应用程序永远不会打开,也不会出现在模拟器内的应用程序列表中。所以我无法在模拟器上实际测试它。
真的很感激一些帮助。
编辑2:
经过一些进一步的修补后,我发现当我尝试与我的设备通话时,我的问题可以更明确地描述为 ADB挂起(冻结)。我已经确定了这个因为 adb shell , adb install 和 adb push 都失败的方式与上述相同。没有错误,只是有限的等待。
adb logcat , adb devices 和其他读取函数完全正常,直到上述写入函数之一挂起,在这种情况下我需要执行 adb kill-server 或 TASKKILL 让 adb logcat 再次运行。
不确定这些添加的信息是否有帮助,但是你去了。我还没有尝试的最后一件事是按照this fellow的建议在我的手机上重置恢复出厂设置。如果我很快找不到解决方案,我会尽可能地备份我的数据并尝试这个......
在此成为我的最后选择之前请保存我!
答案 0 :(得分:12)
如果这有助于其他人我有类似症状的问题。 ADB安装-r" apk路径"会无限期地挂起来。
我解决了无数问题,发现这是我的USB电缆长度。
我有一个USB延长线,因为我将设备插入。我的设备电缆和USB延长线的总长度导致了这个问题。卸下延长线可解决问题,最终我用更短的延长线更换了USB延长线,以便最终解决。
答案 1 :(得分:7)
这些问题似乎随机解决了。正如其他人所说,ADB kill-server的任意组合,重新启动设备以及重新安装SDK似乎可以缓解这个问题(即使只是推动了几次)。
我仍然不知道导致这种情况的原因,虽然迷信上述修复它的任意组合,但我不确定如何永久解决它。
对于未来阅读此内容的人,在给出一个可靠的解释之前,我唯一的建议是将一小时左右的时间重新开始/重建您的开发环境...并确保您购买耐用的压力球。
答案 2 :(得分:3)
在这里黑暗中拍摄,但还有一些事情需要尝试:
答案 3 :(得分:2)
请尝试像其他建议一样重启设备。根据我的经验,杀死adb进程,然后运行cordova run命令有时会神奇地帮助。
答案 4 :(得分:0)
在我的情况下,adb似乎挂了,但实际上从Mac到模拟器的数据传输速度非常慢:
$ adb push platforms/android/build/outputs/apk/android-debug.apk /data/local/tmp/
150 KB/s (15587200 bytes in 101.223s)
USB连接的真实设备上的速度要快得多。不知道为什么......
答案 5 :(得分:0)
有相同的(原始)问题(在旧设备上使用cordova /测试)即。在安装过程中挂起。
尝试直接从cmd行运行adb install ...
adb [-s <deviceID>] install <apk>
......同样的问题,所以不具有特定的信息......
打开Android设备监视器(ADM)...
.. SDK \工具&gt;监测
..再次从cmd行运行安装,看到logcat消息说包是sdk 16 / device是15 ... doh!
所以回到AndroidManifest.xml并将android:minSdkVersion改为15并再次恢复正常 - 安装工作正常。
(问题出现是因为我安装了其他一些改变了minSdkVersion的东西,然后删除了其他内容并且从未重置minSdkVersion)
因此,设备sdk / android版本可能太低,无法构建。如果没有,在从命令行启动安装时查看ADM logcat输出可能会指出问题所在。