2017-04-04 41 views
2

今天早上将几个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上。

回答

0

好吧,这升级还搞砸了支持SD卡Android KitKat上。我的解决方案是将sdk-tool降级到25.2.5。更多关于此这里 4.1 android emulator not detecting sd card

在这一点上我必须说,升级Android的SDK和Android工作室到2.3一直认为我不推荐给任何人一个完整的灾难,除非他们有一些额外的天时间。

0

这个问题似乎来自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 
0

它看起来像新版本的Android SDK在Cordova构建/运行系统中导致了很多错误。

至于现在要解决此问题,你可以在你的项目中编辑这个文件:

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

找到这行(我的是线119):

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

更改它通过:

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

它会工作,它适用于我。