39

当我这样做时出现此错误

$ ant release
sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var

输入 android update project 我收到另一个错误,说我必须指定项目的路径 ....。

然后我尝试 cd 进入我的项目目录并执行

android update -p .
android update -path . 

等等,它说-p并且-path不被全球认可。

有人可以给我确切的语法吗?

4

10 回答 10

29

cd 到项目目录并执行以下命令: 单词 project 是命令的一部分,不能用实际的项目名称替换。文档没有说明这一点,应该加以改进。

   android update project -p .
于 2012-09-06T18:54:27.810 回答
27

您可以使用命令行参数来设置 sdk.dir,例如:

ant -f xyz/build.xml clean release -Dsdk.dir=/Applications/adt-bundle-mac/sdk/
于 2012-12-06T15:22:24.807 回答
24

您可以sdk.dir在 projet.properties 文件中使用来定义 sdk 主页或使用环境变量(对于团队工作更灵活)。

export ANDROID_HOME=<the path to your sdks>
于 2012-09-04T20:44:42.180 回答
13

您可以使用以下命令将ANDROID_HOME环境变量注入到属性中。sdk.dirant

$ ant debug -Dsdk.dir=$ANDROID_HOME

ANDROID_HOME必须是绝对路径,例如/Users/jameswald/Development/android-sdk-macosx.

于 2013-02-22T00:11:39.893 回答
6

我有同样的问题。在使用命令行命令折腾了几分钟后,我最终只是local.properties直接编辑了文件。

你应该有一个名为 local.properties 的文件

<app-directory>\platforms\android

文件夹。如果你没有,那么你可以创建它。

在文件中应该有一个参考,指定 ant 可以在哪里找到你的 android sdk。它应该如下所示:

sdk.dir=C:\\<path-to-sdk>\\sdk

只需更新您的详细信息以将其指向您正确的 android sdk 文件夹。

双 \ 存在于我的文件中。不知道为什么,但它似乎工作。:)

注意:此文件也需要复制到您的CordovaLib文件夹中,该文件夹更深一个文件夹:<app-directory>\platforms\android\CordovaLib

于 2014-07-28T10:39:56.133 回答
2

android update project -p .可能会解决您的问题。有时一旦你执行android update project -p .你可能会得到一个像这样的 O/P。

Updated local.properties
----------
build.xml: Failed to find version-tag string. File must be updated.
In order to not erase potential customizations, the file will not be automatically regenerated.
If no changes have been made to the file, delete it manually and run the command again.
If you have made customizations to the build process, the file must be manually updated.
It is recommended to:
    * Copy current file to a safe location.
    * Delete original file.
    * Run command again to generate a new file.
    * Port customizations to the new file, by looking at the new rules file
      located at <SDK>/tools/ant/build.xml
    * Update file to contain
          version-tag: custom
      to prevent file from being rewritten automatically by the SDK tools.
----------
Updated file ./proguard-project.txt
It seems that there are sub-projects. If you want to update them
please use the --subprojects parameter.

如果是这样试试这个命令android update project -p . -s

于 2015-02-28T17:19:58.807 回答
2

那应该从ant创建/修复local.properties:

android 更新项目 --name --target --path

名称参数是可选的

target是 api 版本

更多信息在这里 https://developer.android.com/tools/projects/projects-cmdline.html#UpdatingAProject

于 2013-07-19T04:54:05.383 回答
1

ANDROID_HOME 必须在正确的上下文中设置 - 只是你有它,例如在你的 bashrc 上并不意味着当你通过单击图标启动时设置了 var ( bashrc 不会被执行 - 但在检查 env var 是否设置时在控制台上是)

你也可以把它放在 studio.sh 中:

#!/bin/sh                                                                                                                               
#                                                                                                                                       
# ---------------------------------------------------------------------                                                                 
# Android Studio startup script.                                                                                                        
# ---------------------------------------------------------------------                                                                 
#                                                                                                                                       

export ANDROID_HOME=/home/ligi/bin/android-sdk/

message()
{
于 2013-06-26T11:56:41.377 回答
0

是的,这些解决方案都不适合我。这是从这里开始的:

在 Mac OS X 上设置 ANDROID_HOME 环境变量

打开终端窗口并输入以下内容(我希望这是 sdk 的完整路径):

export ANDROID_HOME=/Applications/ADT/sdk 一旦你有了这个设置,你需要把它添加到PATH环境变量中

导出 PATH=$PATH:$ANDROID_HOME/bin

于 2014-10-16T08:25:41.343 回答
0

我遇到了同样的问题,事实证明,由于某种原因,其中一个 ant 脚本正在引用硬编码路径,C:\ant并且因为我的 ant 所在的路径C:\apache-ant-{version}无法找到它。重命名ant目录后一切正常。

作为参考,我观察到此问题的文件是 \apache-ant-{version}\bin\ant.bat:第 106 行

编辑:我使用的是 Windows 8

于 2013-09-09T11:23:03.443 回答