SDK.DIR丢失了吗? android更新项目?

时间:2012-09-04 20:38:38

标签: android ant

我做

时出现此错误
$ 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更新项目中输入我得到另一个错误,说我必须指定项目的路径....

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

android update -p .
android update -path . 

等,它表示-p-path未得到全球认可。

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

10 个答案:

答案 0 :(得分:29)

cd到项目目录并执行以下命令:word项目是命令的一部分,不能用实际的项目名称替换。文档没有说清楚,应该改进。

   android update project -p .

答案 1 :(得分:27)

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

ant -f xyz/build.xml clean release -Dsdk.dir=/Applications/adt-bundle-mac/sdk/

答案 2 :(得分:24)

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

export ANDROID_HOME=<the path to your sdks>

答案 3 :(得分:13)

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

$ ant debug -Dsdk.dir=$ANDROID_HOME

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

答案 4 :(得分: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

答案 5 :(得分:2)

那应该从ant:

创建/修复local.properties
  

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

名称参数是可选的

目标是api版本

此处有更多信息 https://developer.android.com/tools/projects/projects-cmdline.html#UpdatingAProject

答案 6 :(得分: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

答案 7 :(得分: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()
{

答案 8 :(得分:0)

我遇到了同样的问题,结果发现其中一个蚂蚁脚本出于某种原因引用了C:\ant的硬编码路径,而我的蚂蚁在C:\apache-ant-{version}中找不到它。重命名ant目录后,一切正常。

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

编辑:我正在使用Windows 8

答案 9 :(得分:0)

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

Setting ANDROID_HOME enviromental variable on Mac OS X

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

export ANDROID_HOME = / Applications / ADT / sdk 完成此设置后,需要将其添加到PATH环境变量

export PATH = $ PATH:$ ANDROID_HOME / bin