SDK Location not found Android Studio + Gradle

I have seen this same thing posted quite a few times, but whenever I try to import my project to my new work laptop I keep getting this error.

I have pulled the project from git (which his btw running fine on my old laptop).

Then I went to the sdk manager, downloaded all the tools, and all the SDK's available. In the welcome screen, I went to Configure -> project Defaults -> Project structure. Android SDK Tab says the path for projects without local.properties will be /Applications/Android Studio.app/sdk This is correct. Under SDKs I have all the available SDK's visible. Project SDK is set to API 18

Yet still I get this error when trying to build my project. Can anyone tell me where I havent looked yet?

I am running gradle 1.7 when trying to build which is downloaded from services.gradle.org


Solution 1:

I had very similar situation (had a project on another machine and cloned it to my laptop and saw the same issue) and I looked in it.

Error message was coming from Sdk.groovy of Android gradle plugin: https://android.googlesource.com/platform/tools/build/+/master/gradle/src/main/groovy/com/android/build/gradle/internal/Sdk.groovy

By looking at code, its findLocation needs to set androidSdkDir variable and there are only three ways to do it:

  • create local.properties file and have either sdk.dir or android.dir line.
  • have ANDROID_HOME environment variable defined.
  • System.getProperty("android.home") - I'm not sure how it works, but it seems like a Java thing.

While your Android Studio knows that the SDK is at that place, I doubt that Android Studio is passing that information to gradle and thus we're seeing that error.

I created local.properties file at the project root and put the following line and it compiled the code successfully.

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

Solution 2:

creating local.properties file in the root directory solved my issue I somehow lost this file after pulling from GitHub

this is how my local.properties file looks like now:

## 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

Solution 3:

I found the solution here:

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

Just create a file local.properties and add a line with sdk.dir=SDK_LOCATION

Solution 4:

If none of the answers work for you which happened to me on macbook pro in one of the projects you can always try to run Android Studio with an alias command passing sdk.dir with each run:

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