当我想在我的phoneGap应用程序中添加一个android平台时,我遇到了问题。 当我执行命令cordova platform add android:
时,我在CLI中收到此消息 Checking Android requirements...
(Error: An error occurred while listing Android targets)
我已经尝试在路径变量中添加我的android sdk位置。
请帮帮我! :d
我在Windows 7 64位上工作,我使用android SDK安装android API 17,18和19。 我在3.2 phoneGap版本。
答案 0 :(得分:167)
要工作,此cordova命令需要使用位于sdk/tools
目录中的某些程序。您还需要安装 apache ant 。
然后,您必须将这些目录添加到PATH
系统变量中:
<强>背景强>
c:\sdk\android
目录c:\tools\apache-ant
目录然后你必须创建两个系统变量:
ANDROID_HOME
c:\sdk\android
值ANT_HOME
c:\tools\apache-ant
值最后,您必须修改PATH
变量并将这两个变量添加到PATH
'值的末尾:
;%PATH%\tools;%ANT_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools
注意:对于那些使用Linux的人来说,指令略有不同。
提供更多文档here。
答案 1 :(得分:42)
首先,您需要一些东西才能开始。它们是:Android SDK
和Apache Ant
。当然,您需要安装Java SDK
(JDK)。
要让Android SDK适用于所有用户,您需要修改/etc/environment
文件,然后重新启动PC。但如果你不想那么难 - 请跟我来,把自己想象成唯一的PC用户。并使用/home/YOUR_USERNAME/.bashrc
文件进行编辑。
让我们记住你的家乡路径,以防止进一步长线。将此添加到/home/YOUR_USERNAME/.bashrc
:
export HOME="/home/YOUR_USERNAME"
当我们想说“$HOME
”时,我们会使用/home/YOUR_USERNAME directory
表示法。
下载Android SDK存档并将其解压缩到某处。让我们说,你的主目录$HOME/adt-bundle/
。
将这些行添加到$HOME/.bashrc
:
export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
与Android SDK一样,下载档案并将其解压缩到您的主目录。然后将这些内容添加到.bashrc
:
export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"
我已通过apt-get
安装了一个,因此这不会影响我的.bashrc
。
要使这些更改生效,您应该在新的终端窗口中工作(在>>更改后打开),或运行 最后,你会得到: 添加到source ~/.bashrc
以在当前终端窗口中进行更改。< / p>
结束
ant
和android-bundle
.bashrc
:export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"
答案 2 :(得分:21)
运行&#34; android&#34;从adt \ sdk \ tools文件夹中输入命令并安装最新的工具和SDK。还要确保您的PATH具有正确的变量。
为此,您需要安装ANT,安装JAVA JDK和Android SDK
JAVA_HOME(C:\ Program Files \ Java \ jdk)
ANT_HOME({ant location} \ apache \ apache-ant)
ANDROID_HOME({android sdk location} \ android-sdk)
将这些添加到您的PATH变量,例如%ANT_HOME%/ bin;%ANDROID_HOME%\ tools;%ANDROID_HOME%\ platform-tools;%JAVA_HOME%\ bin
关闭并重新打开cmd并再次运行命令。
类似答案 3 :(得分:4)
我不确定这是不是你的问题,但是当cordova库缓存被腐蚀的东西污染时,我遇到了类似的错误。要修复它,您只需删除cordova缓存,它将在您下次使用'cordova'时自动重新填充。
在OS X上,此目录为〜/ .cordova。在Windows上,我认为你的用户主目录中仍然是.cordova。
答案 4 :(得分:4)
答案是&#34;以上所有&#34;。但是,如上所述,环境变量也可以这样做:
C:\ Users {YOUR_NAME} .cordova \ lib \ android \ cordova \ 3.5.0 \ framework编辑project.properties文件并将target = android-19更改为target = android-20。
可能需要更改android sdk的下一个版本,直到这个小问题得到解决。
答案 5 :(得分:3)
即使路径变量完全按照说明设置,我也遇到了同样的问题。经过多个文件后我终于解决了。对我来说(Windows 7企业版64位)我不得不从&#34; C:\ Users \ .cordova \修改 check_reqs.js 和 create.js lib \ android \ cordova \ 3.5.0 \ bin \ lib \&#34; 文件夹包含android.bat的绝对路径。我的android SDK在&#34; C:\ Android \ android-sdk&#34;下。
在check_reqs.js我修改了
child_process.exec('android list targets', function(err, stdout, stderr) {
到
child_process.exec('C:\\Android\\android-sdk\\tools\\android.bat list targets', function(err, stdout, stderr) {
在create.js中我修改了语句
return exec('android update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');
到
return exec('C:\\Android\\android-sdk\\tools\\android.bat update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');
另外不要忘记那些双重&#34; \\&#34;在绝对路径
答案 6 :(得分:2)
答案 7 :(得分:2)
对于那些遇到过这个问题的人,我添加一些额外的东西可能会有所帮助,在我的情况下已经正确配置了所有变量,这仍然无法添加Android平台,我做的是禁用我的avast防病毒和粉扑!一切顺利进行,发生的事情是防病毒软件阻止了平台的创建。
对我来说同样重要的是重启电脑。 ;)
问候。
答案 8 :(得分:1)
我注意到了Cygwin / Windows 7的问题。问题源于Cygwin和MS-DOS shell处理.bat文件的方式略有不同。
在“添加平台”期间,cordova调用“android”:
C:\Users\xxx\.cordova\lib\android\cordova\3.4.0\bin\lib\check_reqs.js
它称之为'android list targets'(第73行)
“android”应解析为/xx/android-sdk/tools/android.bat或xx:\ android-sdk \ tools \ android.bat。 (事实上它确实如此,我可以在MS-DOS命令shell上运行“android” - 但不能在Cygwin shell中运行。我需要添加“.bat”。)
没有“.bat”的“android”在Cygwin shell中失败,因为android.exe不存在(只有.bat)。更改第73行以调用'android.bat列表目标'将解决您的问题(或提供合理的错误消息)。另一个解决方法是在MS-DOS shell中运行cordova而不是Cygwin shell。
答案 9 :(得分:0)
我们在这里有一个解决方案列表,所以我添加了一个。在我尝试之前,这对我来说并不清楚。您应该将%ANT_HOME%\ bin;%ANDROID_HOME%\ tools;%ANDROID_HOME%\ platform-tools添加到USER PATH变量,而不是系统1。系统PATH变量将自动连接USER PATH变量并将变量转换为其值。希望能帮到别人。 附:我的操作系统是Win 7x64
答案 10 :(得分:0)
这个问题通常是因为没有为Android SDK设置PATH变量。
export HOME="/home/yourname"
export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"
答案 11 :(得分:0)
接受的答案很好而且非常重要。
我遇到了另一个页面,其中有很好的屏幕截图解释。
您可以参考http://bealers.com/2014/06/phonegap-android-development-environment-for-windows/