【问题标题】:SDK Location not found Android Studio + Gradle未找到 SDK 位置 Android Studio + Gradle
【发布时间】:2013-10-16 19:37:36
【问题描述】:

我已经多次看到同样的事情发布了,但是每当我尝试将我的项目导入我的新工作笔记本电脑时,我都会不断收到此错误。

我已经从 git 中提取了项目(顺便说一句,他在我的旧笔记本电脑上运行良好)。

然后我去了 sdk 管理器,下载了所有工具,并且所有可用的 SDK。 在欢迎屏幕中,我转到配置 -> 项目默认值 -> 项目结构。 Android SDK 选项卡说没有 local.properties 的项目的路径将是 /Applications/Android Studio.app/sdk 这是对的。 在 SDKs 下,我可以看到所有可用的 SDK。 项目 SDK 设置为 API 18

但在尝试构建我的项目时,我仍然收到此错误。 谁能告诉我我还没有看过哪里?

我在尝试构建从 services.gradle.org 下载的构建时正在运行 gradle 1.7

【问题讨论】:

  • 如上所述,我知道如何更改路径没有问题。一切都设置正确。
  • @MathijsSegers 请检查settings.gradle文件是否包含在项目的根文件夹中。
  • 原来是这样,现在已经被随机的东西修复了很久了。
  • 你是如何解决这个问题的?..现在我面临同样的问题..

标签: android gradle android-studio


【解决方案1】:

在我的具体情况下,当我遇到讨论的问题时,我尝试使用 react-native init 安装过程创建一个 React Native 应用程序。

FAILURE: Build failed with an exception.

* What went wrong:

A problem occurred configuring project ':app'.
> SDK location not found. Define location with an ANDROID_SDK_ROOT environment variable or by setting the sdk.dir path in your project's local properties file at 'C:\Users\***\android\local.properties'.

我添加了这个,因为在使用 react native 开发 android 应用程序时,很多答案所指的“根目录”实际上是 android 文件夹的根目录(而不是 App.js 所在的项目根文件夹)。错误消息中标记的目录也说明了这一点。

要解决它,只需在 android 文件夹中添加一个 local.properties 文件,然后键入:

sdk.dir=C:/Users/{user name}/AppData/Local/Android/Sdk

请务必添加本地磁盘的引用 ('C:/'),否则在我的情况下它不起作用。

【讨论】:

    【解决方案2】:

    例如,如果您从 GitHub 克隆了一个项目,并且您尝试了此处提到的方法但没有成功,包括:

    • 在 local.properties 中编辑 sdk.dir
    • 尝试设置 ANDROID_HOME 环境变量
    • 或者添加一个别名作为 kasiara 提到的

    您应该尝试查看您是否正在尝试构建一个目录项目,它是一个更大项目的一部分,因此它可能会导致问题。 所以加载整个项目,然后运行你想要的项目目录。

    【讨论】:

      【解决方案3】:

      您还必须使用 SDK 管理器确保在您的环境中安装了正确的 SDK 平台版本。

      【讨论】:

        【解决方案4】:

        为了解决这个问题,我必须在 Windows 操作系统中定义 ANDROID_HOME 环境变量。

        为此,我进入了系统控制面板。
        我在左侧栏中选择了“高级系统设置”。
        在“高级”选项卡上,我选择了底部的“环境变量”。

        在这里,我没有定义 ANDROID_HOME 变量。对于这种情况,我选择了“新建...”并且:
        1) 对于“变量名”,我输入了ANDROID_HOME
        2)对于“变量值”,我输入了我的 SDK 文件夹的路径,例如"C:\...\AppData\Local\Android\sdk"

        然后我关闭了 Android Studio 并重新打开,一切正常。

        感谢 Dibish (https://stackoverflow.com/users/2244411/dibish) 的一篇帖子让我有了这个想法。

        【讨论】:

          【解决方案5】:

          我注意到,如果我尝试先从命令行构建,则在使用新计算机时会出现此错误。但是,如果我从 Android Studio 构建,它会检索 SDK 并自动创建目录。然后,当我从命令行构建时,它就可以工作了。

          【讨论】:

          • Android Studio 也可能会生成一个带有指向 Android SDK 的 sdk.dir 参数的 local.properties 文件。
          【解决方案6】:

          如果我在 macbook pro 上的某个项目中遇到的任何答案都不适合您,您可以随时尝试使用别名命令运行 Android Studio,每次运行时传递 sdk.dir

          alias studio='launchctl setenv ANDROID_HOME '\''/Users/username/Library/Android/sdk'\'' && open -a '\''Android Studio'\'''
          

          【讨论】:

          • 请举例说明如何传递别名可以帮忙
          【解决方案7】:

          如果您不想(或不知道如何)创建新本地.properties 文件。

          【讨论】:

          • 如果 local.properties 文件完全指定了路径,包括原始机器上的用户名,则可能不起作用。
          【解决方案8】:

          在根目录中创建local.properties 文件解决了我的问题 从 GitHub 拉出后,我不知何故丢失了这个文件

          这就是我的local.properties 文件现在的样子:

          ## This file is automatically generated by Android Studio.
          # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
          #
          # This file must *NOT* be checked into Version Control Systems,
          # as it contains information specific to your local configuration.
          #
          # Location of the SDK. This is only used by Gradle.
          # For customization when using a Version Control System, please read the
          # header note.
          #Sat Feb 06 11:53:03 EST 2016
          
          sdk.dir=/Users/****/Library/Android/sdk
          

          【讨论】:

            【解决方案9】:

            在根文件夹的local.properties 中指定sdk.dir=<SDK_PATH> 解决了我的问题。

            【讨论】:

              【解决方案10】:

              我在这里找到了解决方案:

              http://xinyustudio.wordpress.com/2014/07/02/gradle-sdk-location-not-found-the-problem-and-solution/

              只需创建一个文件 local.properties 并添加一行 sdk.dir=SDK_LOCATION

              【讨论】:

                【解决方案11】:

                我克隆了libgdx 演示,无法导入项目。它也是这样提醒的。

                Env:
                
                Eclipse(Android-ADT)
                
                window 7
                

                所以我在项目根目录下创建 local.properties 文件,如下所示

                sdk.dir = D:/adt-bundle-windows-x86/sdk
                

                我希望这可以帮助别人!

                【讨论】:

                  【解决方案12】:

                  在 IntelliJ 12 中遇到了同样的问题,即使我有 ANDROID_HOME 环境变量,它仍然会给出同样的错误。我最终在我的项目的根目录下创建了 local.properties 文件(我的项目有一个主项目,在它自己的目录中有几个子模块)。这解决了错误。

                  【讨论】:

                    【解决方案13】:

                    我有非常相似的情况(在另一台机器上有一个项目并将其克隆到我的笔记本电脑并看到同样的问题),我查看了它。

                    错误消息来自 Android gradle 插件的Sdk.groovyhttps://android.googlesource.com/platform/tools/build/+/master/gradle/src/main/groovy/com/android/build/gradle/internal/Sdk.groovy

                    看代码,它的findLocation需要设置androidSdkDir变量,方法只有三种:

                    • 创建local.properties 文件并包含sdk.dirandroid.dir 行。
                    • 已定义ANDROID_HOME 环境变量。
                    • System.getProperty("android.home") - 我不确定它是如何工作的,但它看起来像是 Java 的东西。

                    虽然您的 Android Studio 知道 SDK 位于该位置,但我怀疑 Android Studio 是否正在将该信息传递给 gradle,因此我们看到了该错误。

                    我在项目根目录下创建了local.properties文件并放入下面一行代码编译成功。

                    sdk.dir = /Applications/Android Studio.app/sdk/

                    【讨论】:

                    • 哦,它仍然是打开的,显然我们通过从旧机器复制所有文件而不是使用 git 来解决它............所以仍然不知道为什么,但它解决了。
                    • 有时 Android Studio 不读取 ANDROID_HOME 环境变量,如果它这样做,您只需要 Android Studio 通常构建但并不总是构建的 local.properties...
                    • 请注意,在 Windows 上,完整路径似乎不起作用(即 c:\whatever\sdk)。它似乎需要在同一个驱动器上并且是根目录之外的绝对路径(即 /whatever/sdk)
                    • 我会接受这个答案,因为它的支持率最高。我们的项目确实来自 Eclipse,那时我可能会发现 wat 是错误的,但这看起来可能是问题,应该是最常见的问题。
                    • 别忘了重启整个android studio
                    猜你喜欢
                    • 2015-03-30
                    • 1970-01-01
                    • 2020-10-30
                    • 1970-01-01
                    • 2014-10-25
                    • 2014-03-05
                    • 1970-01-01
                    • 1970-01-01
                    • 2020-08-05
                    相关资源
                    最近更新 更多