2014-10-06 36 views
8

我已經安裝了android bundle,我已經配置了.bashrc文件中的所有內容,甚至當我在命令行中說android時。當我說離子平臺添加Android我總是會得到錯誤,因爲「錯誤:ANDROID_HOME未設置,」android「命令不在您的PATH中,您必須至少滿足這些條件之一。 。我嘗試了很多方法,但問題沒有解決。ANDROID_HOME沒有設置和「android」命令不在你的PATH Phonegap

我的平臺:

的Ubuntu 14.04 64位

.bashrc文件:

export HOME="/home/system" 
    export ANDROID_HOME="$HOME/adt-bundle-linux-x86_64-20140702/sdk/tools" 
    export ANDROID_PLATFORM_TOOLS="$HOME/adt-bundle-linux-x86_64-20140702/sdk/platform-tools" 
    export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH" 
    export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64" 
    export ANT_HOME="/usr/share/ant" 
    export PATH="$ANT_HOME/bin:$PATH" 
    export ANDROID_HOME="/home/system/adt-bundle-linux-x86_64-20140702/sdk/tools" 

錯誤而執行:

[email protected]:/usr/share/nginx/www/myApp# ionic platform add android 
    npm http GET https://registry.npmjs.org/cordova-android/3.6.3 
    npm http 200 https://registry.npmjs.org/cordova-android/3.6.3 
    npm http GET https://registry.npmjs.org/cordova-android/-/cordova-android-3.6.3.tgz 
    npm http 200 https://registry.npmjs.org/cordova-android/-/cordova-android-3.6.3.tgz 
    Creating android project... 

    /system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:126 
    throw e; 
    ^
    Error: ANDROID_HOME is not set and "android" command not in your PATH. You must fulfill at least one of these conditions. 
    at /system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/lib/check_reqs.js:158:19 
    at _fulfilled (/system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:798:54) 
    at self.promiseDispatch.done (/system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:827:30) 
    at Promise.promise.promiseDispatch (/system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:760:13) 
    at /system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:821:14 
    at flush (/system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:108:17) 
    at process._tickCallback (node.js:419:13) 
    at Function.Module.runMain (module.js:499:11) 
    at startup (node.js:119:16) 
    at node.js:906:3 

    Error: /system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/ 
    create: Command failed with exit code 8 at ChildProcess.whenDone (/usr/lib/node_modules/cordova/node_modules/ 
    cordova-lib/src/cordova/superspawn.js:135:23) 
    at ChildProcess.emit (events.js:98:17) 
    at maybeClose (child_process.js:756:16) 
    at Process.ChildProcess._handle.onexit (child_process.js:823:5) 

可我知道我可以解決這個錯誤

+0

是否以root身份運行它?可能你可以輸入'echo $ ANDROID_HOME',你會得到一個空字符串 – Blackbelt 2014-10-06 12:24:43

+0

不,我只是以普通用戶身份運行 – Dev 2014-10-07 04:37:55

+0

system @ system-H81M-S1:〜$ echo $ ANDROID_HOME /home/system/adt-bundle- linux-x86_64-20140702/sdk/tools – Dev 2014-10-07 05:15:46

回答

13

我面臨同樣的問題,它已經解決了。

我認爲這是最新的cordova與最新的android的兼容性的問題。 以及你有問題的Android主路徑。

在.bashrc文件

export HOME="/home/indranil" 
export ANDROID_HOME="$HOME/software/adt-bundle-linux-x86_64-20140702/sdk" 
export PATH="$HOME/software/adt-bundle-linux-x86_64-20140702/sdk/tools:$ANDROID_HOME/platform_tools:$PATH" 

嘗試,如果你正在使用舊版本下載最新的Android SDK。 並從您的android管理器下載Android 4.4.2(API 19)。

您可以使用最新的cordova(4.0.0),但如果問題仍然存在,請使用cordova(3.5.0-0.2.7),但如果要升級或降級cordova,請移除現有的使用: -

npm uninstall -g cordova (If linux use sudo npm uninstall -g cordova) 

如果您使用的是Linux在安裝cordoava的時間不使用 須藤

commad,如果您遇到任何錯誤,運行以下命令

sudo chown -R `whoami` ~/.npm 
sudo chown -R `whoami` /usr/local/lib/node_modules 
sudo chown -R `whoami` /usr/local 

然後沒有sudo

npm install -g [email protected] 

安裝科爾多瓦創造離子應用程序,並添加Android作爲平臺,不使用sudo命令的時間。 Cordova在添加平臺時在主文件夾中創建一個.cordova目錄。在創建新的離子應用程序之前刪除該目錄。

和下載的Android(4.4.2),使用命令創建Android虛擬設備後:

android avd 
-1

這個問題對於很多天之後面對我按照上面的說明,並把我喜歡的.bash_profile這對MAC

#==================================================== 
export ANT_HOME=/usr/local/Cellar/ant/1.9.4/bin/ant 
# 
export HOME="/Users/User" 
export ANDROID_HOME="$HOME/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk" 
export PATH="$HOME/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk/tools:$ANDROID_HOME/platform_tools:$PATH" 
# 
export JAVA_HOME=$(/usr/libexec/java_home) 
export PATH=${PATH} 
# 
export PATH=${PATH}:/Users/User/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk/platform-tools:/Users/User/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk/tools:/Users/User/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk/build-tools/android-4.4W 
# 
NPM_PACKAGES="${HOME}/.npm-packages" 
PATH="$NPM_PACKAGES/bin:$PATH" 
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH" 
# 
# Unset manpath so we can inherit from /etc/manpath via the manpath 
# command 
unset MANPATH # delete if you already modified MANPATH elsewhere in your config 
MANPATH="$NPM_PACKAGES/share/man:$(manpath)" 
0

我有同樣的問題,但我發現了一種替代方法,即使用Phonegap Developer App。你可以將它安裝到模擬器並使用它。

13

我一直在爲此苦苦掙扎(Ubuntu 14.04),我記得接受了讓cordova build命令工作對我來說太困難了:-)。我確定我的PATH是正確的(嘗試過根和用戶等),並嘗試了我能找到的每個解決方案。

評論人Stoicuta Alexandru On this page爲我解決了它。我引用:

If ANDROID_HOME is not set, cordova will search for it in home/android-sdk

所以,只需把我的android sdk放在home文件夾中,並且(重要的)命名它就可以了。

希望能挽救一些人一些時間...

+0

你先生救了我!謝謝! – 2015-05-14 16:29:58

+0

不錯,謝謝它的工作 – 2016-04-19 17:28:14

+0

奇怪的是,在這樣做之後,我還必須'導出ANDROID_HOME =「/ home/android-sdk'...至少它現在工作!幾小時後... – 2016-12-08 18:48:07

0

席力圖召等/平臺/安卓/科爾多瓦/運行--emulator設置後ANDROID_HOME用等/ Android的SDK-LINUX /和工作正常。 唯一的問題是我的系統是一個32位的操作系統/個人電腦,然後我必須設置ANDROID_EMULATOR_FORCE_32BIT ='真'與導出命令。

此操作之前,當然,我設置通過命令「機器人AVD」

0

在我的情況我首先創建的離子的應用程序和使用跑SUDO其它離子命令仿真器;這就是爲什麼它不工作,因爲sudo使用root配置文件。

我這是怎麼固定:

  1. 刪除/home/user1/.cordova(與你的用戶名替換USER1) 我用「命令RM」命令來刪除文件夾及其所有conents的

  2. 我刪除的/ home/user1的/ tmp目錄文件夾,這樣當我們再次運行科爾多瓦它與當前用戶的適當的權限創建新的TMP文件夾

  3. 使用「離子開始APP5」創建新的應用程序 - 這是第四Ë我以前使用sudo這樣做主要問題

  4. 加入平臺使用「離子平臺加Android」的

  5. 使用「離子運行Android」的

記得執行,如果從命令行你可以運行「android」命令和「java -version」命令,那麼上面就是完美的解決方案。讓我知道你們是否需要我的幫助。

+0

如果你不能運行android和java命令讓我知道我會幫你解決這個問題 – 2015-07-22 17:56:50

相關問題