Cordova和adb-server问题

时间:2017-06-17 11:50:40

标签: android cordova adb

我正在与Cordova建立一个项目。在iOS上,工作流程似乎与我的预期相似,但在Android上它是相当平衡的行为,我不完全确定如何修复。最初,运行cordova run android ...时收到以下错误:

Error: Failed to execute shell command "getprop,dev.bootcomplete"" on device: Error: adb: Command failed with exit code 1 Error output:
error: device unauthorized.

从这里开始,我运行adb-kill server并再次运行cordova run android ...。模拟器和应用程序似乎在没有先前的adb问题的情况下启动,但是,在显示启动画面后,应用程序在Android模拟器中崩溃并显示以下错误对话框:

Application Error

The connection to the server was unsuccessful.
(file:///android_asset/www/index.html)

如果我再次运行cordova run android ...应用程序成功加载,我可以按预期运行应用程序。如果我重新启动,我需要重新开始这个过程。这个应用程序适用于其他人的计算机,所以我想我的系统上有一些配置错误,但我不确定最好的方法来确定错误。

5 个答案:

答案 0 :(得分:12)

此不一致方案的可能解决方案如下:

  1. 在android平台下的config.xml中添加此首选项:

    <preference name="loadUrlTimeoutValue" value="700000" />

  2. 每次启动前杀死并重启adb服务器

  3. 尝试创建新AVD并在启动AVD时将其提及为目标
  4. 删除并重新添加Android平台并重建相同的
  5. 希望它有所帮助。

    更新:添加了偏好设置摘录

答案 1 :(得分:11)

我面临同样的问题。

有时候运行会有所帮助:

adb kill-server
adb forward --remove-all
adb start-server

但是,我仍然需要经常运行它,这不是一个完美的解决方案。

答案 2 :(得分:3)

更新

这似乎不是答案 - 在更长的时间内,我还在接受

Error: Failed to execute shell command "getprop,dev.bootcomplete"" on device: Error: adb: Command failed with exit code 1 Error output:
error: device unauthorized.

原始

我删除了我的avd设备并创建了一个新设备。此外,我更新loadUrlTimeoutValue更高一点,一切都开始工作。

答案 3 :(得分:2)

您显然遇到竞争条件,其中adb设备已经枚举/已连接但尚未获得授权。你可以等待cordova修复他们的代码以完全消除竞争条件(或者甚至可以自己做)或者只使用userdebug(或eng)Android图像{{1 }}

答案 4 :(得分:0)

UnhandledPromiseRejectionWarning:CordovaError:无法执行shell命令&#34; getprop,dev.bootcomplete&#34;&#34;

将它全部合并 - 并且它有效

config.xml中

<preference name="loadUrlTimeoutValue" value="700000" />

命令 -

adb kill-server
adb forward --remove-all
adb start-server