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:
-
ANDROID_HOME
与c:\sdk\android
值 -
ANT_HOME
和c:\tools\apache-ant
值
最后,您必须修改PATH
variables并将这两个添加到PATH
值的末尾:
;%PATH%\tools;%ANT_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools
注意:对于那些使用Linux的人来说,指令有点不同。
更多文档可在这里 。
对于那些喜欢Linux开发环境的人来说,
要求
首先,你需要做一些事情才能开始。 它们是: 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/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窗口中进行更改。
包起来
最后,你会得到:
- 在你的主目录下有两个目录 –
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"
从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:\用户\ .cordova \ lib \ android \ cordova \ 3.5.0 \ bin \ lib \”文件夹中check_reqs.js和create.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/