找不到SDK位置Android Studio + Gradle

时间:2013-10-09 12:32:42

标签: android gradle android-studio

我已经看过很多次这样的事情,但每当我尝试将我的项目导入我的新工作笔记本电脑时,我都会遇到这个错误。

我已经从git中取出了这个项目(他的btw在我的旧笔记本电脑上正常运行)。

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

然而,在尝试构建项目时,我仍然遇到此错误。 谁能告诉我我还没看过什么?

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

13 个答案:

答案 0 :(得分:47)

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

错误消息来自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/

答案 1 :(得分:9)

在根目录中创建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

答案 2 :(得分:4)

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

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

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

答案 3 :(得分:2)

如果在其中一个项目中macbook pro上发生的任何答案都不适合您,您可以随时尝试使用alias命令运行Android Studio,并在每次运行时传递 sdk.dir

- (BOOL)isToggleTurnedOn {
    return [self checkToggleStatus] != [self checkOtherToggle]
}

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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

答案 6 :(得分:0)

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

Env:

Eclipse(Android-ADT)

window 7

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

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

我希望这可以帮助别人!

答案 7 :(得分:0)

如果您不想(或知道如何)创建一个项目新的local.properties文件。

答案 8 :(得分:0)

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

答案 9 :(得分:0)

要解决此问题,我必须在Windows操作系统中定义ANDROID_HOME环境变量。

为此,我进入了系统控制面板 我选择了&#34;高级系统设置&#34;在左栏中。
在&#34;高级&#34;标签,我选择了#34;环境变量&#34;在底部。

在这里,我没有定义ANDROID_HOME变量。对于这种情况,我选择了#34;新...&#34;和:
1)for&#34;变量名称&#34;我输入了ANDROID_HOME
2)对于&#34;变量值&#34;,我输入了我的SDK文件夹的路径,例如"C:\...\AppData\Local\Android\sdk"

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

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

答案 10 :(得分:0)

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

答案 11 :(得分:0)

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

  • 在local.properties中编辑sdk.dir
  • 尝试设置ANDROID_HOME环境变量
  • 或添加一个别名,如kasiara所述

您应该尝试查看是否要构建一个目录项目,该目录项目是较大项目中的一部分,因此可能会引起问题。 因此,加载整个项目,然后运行所需的项目目录。

答案 12 :(得分:0)

在我的特定情况下,当遇到所讨论的问题时,我尝试使用react-native初始化安装过程创建一个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所在的项目的根文件夹) )。通过错误消息中标记的目录也可以清楚地看到这一点。

要解决此问题,只需将local.properties文件添加到android文件夹,然后键入:

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

请确保添加本地磁盘的引用('C:/'),因为在我的情况下它不能正常工作。