我正在与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 ...
应用程序成功加载,我可以按预期运行应用程序。如果我重新启动,我需要重新开始这个过程。这个应用程序适用于其他人的计算机,所以我想我的系统上有一些配置错误,但我不确定最好的方法来确定错误。
答案 0 :(得分:12)
此不一致方案的可能解决方案如下:
在android平台下的config.xml中添加此首选项:
<preference name="loadUrlTimeoutValue" value="700000" />
每次启动前杀死并重启adb服务器
希望它有所帮助。
更新:添加了偏好设置摘录
答案 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