使用cordova构建Android应用程序时出错

时间:2015-03-23 14:04:38

标签: android cordova build

使用cordova命令构建一个Android应用程序时遇到了这个问题:

cordova build android

D:\Desenvolvimento\ionicapps\AppBelle>cordova build android Running command: "C:\Program Files\nodejs\node.exe" 
D:\Desenvolvimento\ionicapps \AppBelle\hooks\after_prepare\010_add_platform_class.js D:\Desenvolvimento\ionic apps\AppBelle add to body class: platform-android 
Running command: "C:\Program Files\nodejs\node.exe" D:\Desenvolvimento\ionicapps \AppBelle\hooks\after_prepare\020_remove_sass_from_platforms.js D:\Desenvolvimen to\ionicapps\AppBelle 
Running command: D:\Desenvolvimento\ionicapps\AppBelle\platforms\android\cordova \build.bat [Error: Android SDK not found. Make sure that it is installed. If it is not at t he default location, set the ANDROID_HOME environment variable.] 
ERROR building one of the platforms: 
Error: D:\Desenvolvimento\ionicapps\AppBell e\platforms\android\cordova\build.bat: Command failed with exit code 2 You may not have the required environment or OS to build this project 
Error: D:\Desenvolvimento\ionicapps\AppBelle\platforms\android\cordova\build.bat : Command failed with exit code 2 at ChildProcess.whenDone (C:\Users\Victor\AppData\Roaming\npm\node_modules\c ordova\node_modules\cordova-lib\src\cordova\superspawn.js:131: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)

D:\Desenvolvimento\ionicapps\AppBelle>echo %ANDROID_HOME% C:\Users\Victor\AppData\Local\Android\sdk\

上面我显示了env var ANDROID_HOME的位置。我不知道该怎么做。

请帮帮我。

由于

3 个答案:

答案 0 :(得分:5)

我现在正在学习Ionic(基于Cordova),当我执行ionic build android时,我在Mac OS中遇到了类似的问题,下面有类似的错误信息:

  

运行命令:/ Users / ngloom / code / workspace / myWork / platforms / android / cordova / build

     

[错误:未找到Android SDK。确保已安装。如果它不在默认位置,请设置ANDROID_HOME环境变量。]

并且在设置ANDROID_HOME环境后,msg仍然存在,升级sdk工具,最后我必须查看抛出错误的check_reqs.js,我发现js基于{{1的cmd输出最后我发现android list targets 归root 所有(很可能是之前由sudo brew安装的android)并且只有在我的用户执行时才会返回错误。

所以我改变了android的所有者,一切正常!

我在这里发布我的解决方案作为解决方案备份,希望能帮助像我这样的人:)

答案 1 :(得分:1)

不幸的是,这可能是因升级Android SDK版本而导致的错误。一般来说,寻找不同的原因:

  1. 首先,如果您必须设置ANDROID_HOME环境变量。 (根据您的操作系统 - 在Windows中,右键单击您的PC图标“我的电脑”, - >属性 - >高级系统设置 - >环境变量“并设置ANDROID_HOME变量并编辑PATH变量到您的android的路径SDK,工具和平台工具。

  2. Secound在命令工具中尝试“android”命令,如果android sdk无法打开它会导致生成应用程序的问题。我收到了这个错误:

    “android”命令不再可用。 对于手动SDK和AVD管理,请使用Android Studio。 对于命令行工具,请使用 tools \ bin \ sdkmanager.bat和tools \ bin \ avdmanager.bat

  3. 要解决它,你应该使用以下链接降级你的sdk: (Mac)https://dl.google.com/android/repository/tools_r25.2.3-macosx.zip (Windows)https://dl.google.com/android/repository/tools_r25.2.3-windows.zip

    并用你的android SDK中的“tools”文件夹替换zip文件,在尝试“android”命令并在cordova和离子框架中构建app命令后,它将正常工作。

    挖掘原因:(在我的情况下)

    为什么android命令失败导致了这个问题?

    js文件中的cordova或离子配置的一部分是使用android命令“验证”您的“ANDROID_HOME”和“PATH”环境变量来操作构建您的应用程序,并且在任何通过命令访问访问Android sdk失败的情况下,系统告诉你找不到“Android SDK”。最近,在新版本中,android命令不再可访问,并且导致使用此命令的任何操作出现问题。 :/

    希望它适合你,我花了一些时间来解决这个问题并且不要忘记(+1)它是否对你有帮助!

答案 2 :(得分:0)

Setting environmental variables使用此功能设置path工具和平台工具,并为您正在尝试构建的Android版本更新SDK,并确保天气为Ionic或cordova应用程序,然后尝试一次