cordova平台添加Android不工作,同时上市Android目标

我有问题,当我想添加一个Android平台到我的phoneGap应用程序。 我在CLI中得到了这个消息,当我执行命令cordova platform add android:

Checking Android requirements... (Error: An error occurred while listing Android targets)

我已经尝试在pathvariables中添加我的android sdk位置。

请帮帮我 ! :d

我工作在Windows 7 64位,我安装Android SDK 17,18和19与Android SDK。 我在3.2 phoneGap版本。

要工作,这个cordova命令需要使用一些位于你的sdk/tools目录下的程序。 你还需要安装apache ant

那么你必须将这些目录添加到PATH系统variables中:

背景:

  • 假设您已将Android SDK安装到c:\sdk\android目录
  • 您已将Apache Ant安装到c:\tools\apache-ant目录

那么你必须创build两个系统variables:

  1. ANDROID_HOMEc:\sdk\android
  2. ANT_HOMEc:\tools\apache-ant

最后,您必须修改PATHvariables并将这两个添加到PATH值的末尾:

 ;%PATH%\tools;%ANT_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools 

注意:对于那些使用Linux的人来说,指令有点不同。

更多文档可在这里 。

对于那些喜欢Linux开发环境的人来说,

要求

首先,你需要做一些事情才能开始。 它们是: Android SDKApache Ant 。 当然,您将需要安装Java SDK (JDK)。

要让所有用户都能使用Android SDK,您需要修改/etc/environment文件,然后重新启动您的PC。 但是,如果你不想那么辛苦 – 跟着我,把自己当成唯一的PC用户。 并使用/home/YOUR_USERNAME/.bashrc文件进行编辑。

让我们记住你的家乡路线,以防止进一步的长队。 把这个添加到你的/home/YOUR_USERNAME/.bashrc

 export HOME="/home/YOUR_USERNAME" 

当我们想说“ /home/YOUR_USERNAME directory时,我们将使用$HOME符号。

设置Android SDK

下载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" 

设置Ant

就像使用Android SDK一样,下载一个存档并将其解压到您的主目录。 然后将这些添加到您的.bashrc

 export ANT_HOME="$HOME/ant" export PATH="$PATH:$ANT_HOME/bin" 

我已经通过apt-get安装了一个,所以这不会影响我的.bashrc

应用更改

要进行这些更改,您应该在新的terminal窗口( 更改打开)中运行,或运行source ~/.bashrc以在当前terminal窗口中进行更改。

包起来

最后,你会得到:

  1. 在你的主目录下有两个目录 – antandroid-bundle
  2. 几行,添加到您的.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" 

从adt \ sdk \ tools文件夹运行“android”命令并安装最新的Tools和SDK。 还要确保你的PATH有正确的variables。

为此,您需要安装ANT,安装JAVA JDK和Android SDK

JAVA_HOME(C:\ Program Files \ Java \ jdk)

ANT_HOME({ant位置} \ apache \ apache-ant)

ANDROID_HOME({android sdk location} \ android-sdk)

将这些添加到您的PATHvariables,如%ANT_HOME%/ bin;%ANDROID_HOME%\ tools;%ANDROID_HOME%\ platform-tools;%JAVA_HOME%\ bin

closures并重新打开你的CMD并再次运行你的命令。

与PhoneGap / Cordova Android开发类似

我不确定这是否是您的问题,但是当cordova库caching受到污染时会遇到类似的错误。 为了解决这个问题,你只需要删除cordovacaching,下次使用'cordova'时它会自动重新填充。

在OS X上,这个目录是〜/ .cordova。 在Windows上,我认为它仍然是您的用户主目录中的.cordova。

答案是“以上所有”。 不过如环境variables所提到的那样,也是这样做的:

C:\ Users {YOUR_NAME} .cordova \ lib \ android \ cordova \ 3.5.0 \ framework编辑project.properties文件并将target = android-19更改为target = android-20。

据推测,这将需要改变为android sdk的下一个翻版,直到这个小问题得到解决。

经过漫长的斗争之后,在做了以上所有的build议之后,越来越绝望的一次,我只是打开了我的cmd作为pipe理员。 有效。 我想我得到这个电脑之前太“sudo”使用。

对于那些遇到这个问题我添加一些额外的,可以帮助,在我的情况下,所有的variables正确configuration,这仍然无法添加Android平台,我所做的是禁用我的avast防病毒和泡芙! 一切顺利,正在发生的事情是防病毒阻止了平台的创build。

同样重要的是重新启动电脑。 ;)

问候。

即使pathvariables完全按照说明设置,我也遇到同样的问题。 经过多个文件后,我终于得到解决。 对于我(Windows 7企业64位),我不得不修改“C:\用户\ .c​​ordova \ lib \ android \ cordova \ 3.5.0 \ bin \ lib \”文件夹中check_reqs.jscreate.js以包括绝对path为android.bat。 我的android SDK在“C:\ Android \ android-sdk”下。

在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) + '"'); 

也不要忘记那些绝对path中的双“\\”

我注意到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列表目标”(在73行)

“android”应该parsing为/xx/android-sdk/tools/android.bat或者xx:\ android-sdk \ tools \ android.bat。 (事实上​​,我可以在MS-DOS命令行上运行“android”,但不能在Cygwin shell中运行。我需要添加“.bat”。)

“android”没有“.bat”在Cygwin shell失败,因为android.exe不存在(只有.bat)。 更改第73行以调用“android.bat list targets”将解决您的问题(或给出合理的错误消息)。

另一个解决方法是在MS-DOS shell而不是Cygwin shell中运行cordova。

我们在这里有一个解决scheme列表,所以我添加一个。 直到我尝试之后,我才意识到这一点。 您应该将%ANT_HOME%\ bin;%ANDROID_HOME%\ tools;%ANDROID_HOME%\ platform-tools添加到USER PATHvariables,而不是系统。 系统PATHvariables将自动连接USER PATHvariables并将variables转换为其值。 希望能帮助别人。 PS我的操作系统是Win 7×64

这个问题通常是由于Android SDK没有设置PATHvariables导致的。

 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" 

接受的答案是好的,在这一点上。

我遇到了另一个页面,其中很好地解释了屏幕截图。

你可以参考http://bealers.com/2014/06/phonegap-android-development-environment-for-windows/