【问题标题】:Upgrade in the cordova stack broken starting simulators升级科尔多瓦堆栈损坏的启动模拟器
【发布时间】:2017-08-29 11:47:46
【问题描述】:

今天早上将几个 SDK 和 Android Studio 升级到 2.3 后,我遇到了与此相关的常见故障。 由于某些 API 发生了变化,我一直无法启动模拟器。我得到以下信息:

Running command: android list avds
Command finished with error code 2: android list,avds
Error: android: Command failed with exit code 2
  at ChildProcess.whenDone (/home/mario/src/mobile/regibox/app/platforms/android/cordova/node_modules/cordova-common/src/superspawn.js:169:23)
  at emitTwo (events.js:87:13)
  at ChildProcess.emit (events.js:172:7)
  at maybeClose (internal/child_process.js:854:16)
  at Process.ChildProcess._handle.onexit (internal/child_process.js:222:5)

自己运行命令给我

$ android list avds
*************************************************************************
The "android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.    
For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager
*************************************************************************    
Invalid or unsupported command "list avds"

Supported commands are:
android list target    
android list avd       
android list device    
android create avd     
android move avd       
android delete avd     
android list sdk       
android update sdk

这是我目前拥有的:

$ cordova -v
6.5.0

$ cordova platform ls
Installed platforms:
 android 6.2.0
Available platforms: 
 amazon-fireos ~3.6.3 (deprecated)
 blackberry10 ~3.8.0
 browser ~4.1.0
 firefoxos ~3.6.3
 ubuntu ~4.3.4
 webos ~3.7.0

现在我的问题是我必须更新什么包以及如何更新? 或者什么包问题

android 列表 avds

这是在 linux 上。

【问题讨论】:

    标签: android cordova


    【解决方案1】:

    看起来新版本的 Android SDK 在 cordova 构建/运行系统中造成了很多错误。

    目前,您可以在项目中编辑此文件:

    ./platforms/android/cordova/lib/emulator.js
    

    找到这一行(我的是第 119 行):

    return superspawn.spawn('android', ['list', 'avds'])
    

    改变它:

    return superspawn.spawn('android', ['list', 'avd'])
    

    它会工作,它对我有用。

    【讨论】:

      【解决方案2】:

      好的,这次升级还破坏了 android kitkat 对 SD 卡的支持。我的解决方案是将 sdk-tool 降级到 25.2.5。更多关于这里 4.1 android emulator not detecting sd card

      在这一点上,我必须说将 android-sdk 和 android-studio 升级到 2.3 完全是一场灾难,我不向任何人推荐,除非他们有几天的额外时间。

      【讨论】:

        【解决方案3】:

        问题似乎来自cordova android平台实现。

        您可以使用以下方法升级到最新(主)版本:

        cordova platform add https://github.com/apache/cordova-android
        

        (复制自https://stackoverflow.com/a/42797817

        不幸的是,即使在主版本中仍然存在此问题(请参阅source code),但可能很快就会修复。

        作为一种解决方法,您可以重命名 android 实用程序,但据我所知,它似乎已被弃用:

        mv $ANDROID_HOME/tools/android $ANDROID_HOME/tools/android.bak
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-06-22
          • 1970-01-01
          • 2015-07-03
          • 1970-01-01
          • 2014-12-11
          • 2015-09-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多