【问题标题】:SDK.DIR is missing? android update project?SDK.DIR 丢失?安卓更新项目?
【发布时间】:2012-08-29 13:23:50
【问题描述】:

执行此操作时出现此错误

$ 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 项目中输入我得到另一个错误,说我必须指定路径 .... 到项目。

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

android update -p .
android update -path . 

等等,它说-p-path 不是全球认可的。

谁能给我准确的语法?

【问题讨论】:

  • 正确答案如下,由 Code Droid 提供,只是他输入的是“ant”而不是“android”。 Nalum 的评论纠正了错字。
  • ^ 这已更新为正确答案

标签: android ant


【解决方案1】:

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

   android update project -p .

【讨论】:

  • 那个命令应该是android update project -p .。这在 Ubuntu 上对我有用。
  • @Rodja 阅读了命令给出的错误消息。我刚刚从 git hub 签出了一个项目,上面的命令说“请为 'android update' 命令提供一个 --target。”如果你这样做,android更新项目就会顺利
  • 如果您有子项目(例如 facebook sdk),则 '$ android update project -s -t "android-19" -p .',将 android-19 替换为所需的目标。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    export ANDROID_HOME=<the path to your sdks>
    

    【讨论】:

    • 设置环境变量“ANDROID_HOME”没有帮助。这可能是需要设置的不同变量。
    • 我在 Linux 上,我正在使用最新版本的 SDK (r21)。您使用的是什么版本的 SDK?
    • 我不能准确地说我使用这个设置,因为我相信自 SDK 16 以来它仍然适用于我使用的所有计算机和我设置的所有持续集成服务器。真的过时了吗?
    【解决方案4】:

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

    $ ant debug -Dsdk.dir=$ANDROID_HOME
    

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

    【讨论】:

    • 刚刚尝试过,请注意有一个奇怪的地方......如果路径不是以/ 开头,它将被附加到android_root(如果你有env var)。我试过-Dsdk.dir=~/android/sdk,结果看到/some/dir/~/android/sdk...所以使用-Dsdk.dir=/home/you/android/sdk
    • 感谢 gcb,我在答案中添加了这个细节。
    • 这主要是你的shell的一个属性; ~ 仅在词首展开。
    • 它对我有用。虽然我已经在我的环境中定义了 ANDROID_HOME,但是如果我只使用 'ant debug',它永远不会正常工作,直到我使用 'ant debug -Dsdk.dir=$ANDROID_HOME'。
    【解决方案5】:

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

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

    <app-directory>\platforms\android
    

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

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

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

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

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

    注意:此文件还需要复制到您的CordovaLib 文件夹中,该文件夹更深一层:&lt;app-directory&gt;\platforms\android\CordovaLib

    【讨论】:

    • ty,花了 3 个小时找出为什么插件在奇怪的路径中搜索 SDK!
    • 如果项目有可能跨 OS X 和 Windows 等环境运行,则不是最佳解决方案。 (由于路径定义不一样)
    【解决方案6】:

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

    android 更新项目 --name --target --路径

    名称参数是可选的

    target是api版本

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

    【讨论】:

      【解决方案7】:

      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

      【讨论】:

        【解决方案8】:

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

        你也可以放在studio.sh中:

        #!/bin/sh                                                                                                                               
        #                                                                                                                                       
        # ---------------------------------------------------------------------                                                                 
        # Android Studio startup script.                                                                                                        
        # ---------------------------------------------------------------------                                                                 
        #                                                                                                                                       
        
        export ANDROID_HOME=/home/ligi/bin/android-sdk/
        
        message()
        {
        

        【讨论】:

          【解决方案9】:

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

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

          编辑:我使用的是 Windows 8

          【讨论】:

            【解决方案10】:

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

            Setting ANDROID_HOME enviromental variable on Mac OS X

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

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

            导出 PATH=$PATH:$ANDROID_HOME/bin

            【讨论】:

              猜你喜欢
              • 2023-02-11
              • 2016-06-18
              • 2017-09-08
              • 1970-01-01
              • 2012-11-30
              • 2017-02-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多