为phonegap添加android平台时出现错误

4
今天我开始使用phonegap,按照文档的说法,我正在尝试在我的本地机器上设置环境。在这个过程中,我安装了android SDK,并在bashrc文件中设置了环境变量。
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JAVA_HOME
PATH=$PATH:$JAVA_HOME

ANDROID_HOME=$HOME/Git/adt-bundle-linux/sdk
export ANDROID_HOME
PATH=$PATH:$ANDROID_HOME

ANDROID_PLATFORM_TOOLS=$ANDROID_HOME/platform-tools
export ANDROID_PLATFORM_TOOLS
PATH=$PATH:$ANDROID_PLATFORM_TOOLS

ANDROID_TOOLS=$ANDROID_HOME/tools
export ANDROID_TOOLS
PATH=$PATH:$ANDROID_TOOLS
export PATH

ANT_HOME=/usr/share/ant
export ANT_HOME
PATH=$PATH:$ANT_HOME/bin

我切换到工作目录并在运行 cordova platform add android 后遇到以下错误。
Creating android project...

/home/.cordova/lib/npm_cache/cordova-     
android/3.6.3/package/bin/node_modules/q/q.js:126
                throw e;
                      ^
Error: Failed to run "javac -version", make sure you have a Java JDK (not just a JRE) installed.
at /home/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/lib/check_reqs.js:43:27
at ChildProcess.exithandler (child_process.js:651:7)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:753:16)
at Process.ChildProcess._handle.onexit (child_process.js:820:5)
Error: /home/.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.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:753:16)
at Process.ChildProcess._handle.onexit (child_process.js:820:5)
@barrett:~/Git/phonegap/hellowPhonegap$

使用“sudo”运行相同的命令,如sudo cordova platform add android,会抛出以下错误。

 /home/.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 /home/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/lib/check_reqs.js:158:19
at _fulfilled (/home/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:798:54)
at self.promiseDispatch.done (/home/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:827:30)
at Promise.promise.promiseDispatch (/home/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:760:13)
at /home/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:821:14
at flush (/home/.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: /home/.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.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:753:16)
at Process.ChildProcess._handle.onexit (child_process.js:820:5)

我该使用哪个命令?如果其中一个有问题,是什么原因。

能否有人帮助我。


我遇到了同样的问题(但是在Windows上)。你有什么好运吗? - inblueswithu
4个回答

2
我遇到了同样的问题,让我们执行 javac -version 命令,然后它会显示可用的版本。
The program 'javac' can be found in the following packages:
 * default-jdk
 * ecj
 * gcj-4.8-jdk
 * openjdk-7-jdk
 * gcj-4.6-jdk
 * openjdk-6-jdk
Try: sudo apt-get install <selected package>

跟随那个。我希望这能帮助你。

0
我也遇到了同样的问题,你可以将以下内容添加到你的路径中。在Windows系统中,我是这样做的:path=%path%;%android_home%/platform-tools

从问题的简要查看中,我不认为OP正在使用Windows,而且我还可以看到您建议的路径已经添加到路径变量中。 - arco444
还有一件事,当我在波斯制作具有不同语言(本地语言,例如 تقویم)的应用程序时,当我想要添加平台时,它会显示此错误。但是与此同时,当我创建英文名称(例如,calender)时,它会创建并添加每个平台。 - Parsaria

0

像这样添加ANDROID_HOME路径

export ANDROID_HOME='你的路径'

检查路径后,可以使用echo $ANDROID_HOME


0
我遇到的问题是,我安装了openjre,但javac实际上是openjdk的一部分。希望这能帮助到某些人。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接