【问题标题】:Cordova and adb-server issueCordova 和 adb-server 问题
【发布时间】:2017-06-17 11:50:39
【问题描述】:

我正在使用 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 ...,应用程序加载成功,我可以按预期运行应用程序。如果我重新启动,我需要重新开始这个过程。此应用程序可以在其他人的计算机上运行,​​所以我想我的系统上存在一些错误配置,但我不确定继续确定问题的最佳方法。

【问题讨论】:

  • 您的错误显示“设备未经授权”。请导航到 \platform-tools 并执行“adb devices”命令来检查设备是否被授权。如果没有,请重新授权并重试
  • 关于此的任何更新
  • 当我运行该命令时,我看到了我的模拟器。我没有看到任何说明该设备是否在列表中获得授权的信息
  • 您可以尝试在android平台下的config.xml中添加此首选项: 理想情况下意味着将超时值增加到20秒
  • @Gandhi 谢谢你的建议。我之前做了700000,但它仍然有这个问题。是不是我的应用启动太慢了?

标签: android cordova adb


【解决方案1】:

这种不一致的场景可能的解决方案如下:

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

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

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

  3. 尝试创建一个新的 AVD 并在启动 AVD 时将其作为目标提及

  4. 删除并重新添加android平台并重建相同

希望对你有帮助。

更新:添加偏好 sn-p

【讨论】:

  • @RyanLanciaux 嗨 Ryan,很抱歉在格式中遗漏了它
【解决方案2】:

我也面临同样的问题。

有时它有助于运行:

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

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

【讨论】:

    【解决方案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 更新为更高一点,一切都开始工作了。

    【讨论】:

    • 很遗憾,我也遇到了同样的问题,但是您找到了解决方法或解决方案吗?
    • Genymotion 对我来说比其他 Android 模拟器好得多。在启动应用程序之前启动模拟器似乎给了我更高的成功率(仍然有一些问题,但不那么频繁)
    【解决方案4】:

    您显然遇到了竞态条件,其中adb 设备已被枚举/连接但尚未授权。您可以等待cordova 修复他们的代码以完全消除竞争条件(或者甚至自己动手),或者只使用userdebug(或eng)Android 图像和ro.adb.secure=0

    【讨论】:

      【解决方案5】:

      UnhandledPromiseRejectionWarning: CordovaError: Failed to execute shell command "getprop,dev.bootcomplete""

      结合所有这些 - 并且有效

      config.xml

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

      命令 -

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

      【讨论】:

        猜你喜欢
        • 2011-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多