2017-04-11 139 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

相關問題