2017-04-11 95 views
7

我试图运行在Android模拟器我科尔多瓦项目:科尔多瓦错误:“机器人:命令失败,退出代码2”

cordova emulate android 

构建成功,但模拟器不开始,我得到一个错误:在运行时cordova requirements

Error: android: Command failed with exit code 2 

我得到同样的事情:

Requirements check results for android: 
Java JDK: installed 1.8.0 
Android SDK: installed true 
Android target: not installed 
android: Command failed with exit code 2 
Gradle: installed /opt/android-studio/gradle/gradle-3.2/bin/gradle 
Error: Some of requirements check failed 

我已将Android SDK工具升级到26.0.1,并且android命令不再适用于我。所以我安装[email protected]release page说,在我的项目中使用它:

$ cordova platform ls 
Installed platforms: 
    android 6.2.1 
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 

但错误依然发生。有人有任何想法,为什么会发生这种情况?

+0

有时在升级后,我发现我必须删除android平台并读取它 –

回答

21

我认为Android的SDK的新版本与科尔多瓦仿真兼容,所以我改变了:

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

这样:

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

platforms/android/cordova/lib/emulator.js 

并且你的错误被修复了。发生这种情况的原因是,在新SDK中将“android list avds”命令改为“android list avd”。感谢名单以Douglas Neves

如果之后你会赶上另一个错误是这样的:

Failed to install ... Failure [INSTALL_FAILED_VERSION_DOWNGRADE] 

你需要改变这一点:

var command = 'adb -s ' + target + ' install -r "' + apk + '"'; 

这样:

var command = 'adb uninstall "' + pkgName + '"; adb -s ' + target + ' install -r "' + apk + '"'; 

在同一个文件中。此代码将在安装之前卸载应用程序,因此版本问题将消失。

+0

谢谢!这完全解决了它!这看起来像他们错过了在科尔多瓦安卓6.2.1 – jetpackpony

+0

这是否已提交为科尔多瓦错误报告? – IanL

+0

这就是对的。有用!你是个天才! –

5

你应该更新最新的平台:

cordova platform remove android 
cordova platform update [email protected] 
+0

它为我工作,你只需要在更新它之前添加平台:'cordova platform add android' –

-1

您应保存离子整个工作区中C盘下的文件夹用。

任务':mergeDebugResources'错误的执行失败将被解决。

+0

对不起,我不明白你的意思。我不使用Ionic或Windows。你提到的错误并不是对我而言的。另外这个问题已经有了一个答案,指出我的情况到底出了什么问题 – jetpackpony

相关问题