【问题标题】:Error to build a android app with cordova使用 cordova 构建 android 应用程序时出错
【发布时间】:2015-03-23 14:04:38
【问题描述】:

我在使用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 的位置。我不知道该怎么办。

请帮帮我。

谢谢

【问题讨论】:

标签: android cordova build


【解决方案1】:

这几天我在学习Ionic(基于Cordova),在Mac os中执行ionic build android时也遇到了类似的问题,下面有类似的错误消息:

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

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

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

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

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

【讨论】:

  • sudo chmod u+x /path/to/sdk/tools/android
  • 非常感谢!更改权限为我们解决了这个问题!
【解决方案2】:

很遗憾,这可能是升级 android SDK 版本导致的错误。一般寻找不同的原因:

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

  2. 第二次尝试命令工具中的“android”命令,如果 android sdk 无法打开它会导致构建您的应用程序出现问题。我收到了这个错误:

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

要解决它,您应该使用以下链接降级您的 sdk: (苹果机)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 中的“工具”文件夹替换 zip 文件,在尝试“android”命令并在 cordova 和 ionic 框架中构建应用程序命令后,它将正常工作。


挖掘原因:(以我为例)

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

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

希望它对你有用,我花了一些时间来解决这个问题,如果它对你有帮助,别忘了 (+1)!

【讨论】:

  • 降级 SDK 工具对我有用。我已经设置了所有路径变量。我希望 Ionic 能够更新以支持使用最新的 sdk 工具进行构建。
  • 显然,由于最近Android studio取消了“android”命令访问,导致之前使用该命令的产品出现故障。也许 Android Studio 应该恢复它的访问权限。
【解决方案3】:

Setting environmental variables 使用它来设置path 到工具和平台工具,并为您尝试构建的 android 版本更新 SDK,并确保其 Ionic 或 cordova 应用程序经受住考验,然后尝试一次

【讨论】:

  • 我使用的是 Windows 8。我之前设置了环境变量。但问题依然存在。我尝试使用离子,但也没有功能,并且任何给我任何响应,因此我尝试使用 Cordova 命令,但我收到此错误。
  • 可能是您这样做了,但就像您看到的那样,您的路径有些不正确。
  • @vtsimoes 他们的设置很少,必须为正常工作完成......所以stackoverflow.com/a/26825450/4195629 设置环境路径,一切都会好起来的。利用 Sithys 的评论,该问题包含您正在寻找的大部分答案。
  • 我提到的 @Sithys 路径是为了让您了解它的 windows OS(dir's - D:\)
  • 我的 echo %PATH% 为我提供了到 Android SDK 的正确路径,但错误仍然存​​在。 Echo %ANDROID_HOME% 也给出了正确的路径。
猜你喜欢
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 2013-11-02
  • 1970-01-01
  • 1970-01-01
  • 2018-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多