Mathijs Segers
Mathijs Segers

Reputation: 6238

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

Upvotes: 48

Views: 124623

Answers (13)

Fronzie
Fronzie

Reputation: 33

In my specific case I tried to create a React Native app using the react-native init installation process, when I encountered the discussed problem.

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'.

I add this, because when developing an android app using react native, the 'root directory' to which so many answers refer, is actually the root of the android folder (and not the project's root folder, where App.js resides). This is also made clear by the directory marked in the error message.

To solve it, just add a local.properties file to the android folder, and type:

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

Be sure to add the local disk's reference ('C:/'), because it did not work otherwise in my case.

Upvotes: 0

Richard Miller
Richard Miller

Reputation: 616

If you have cloned a project from GitHub for example, and you've tried the methods mentioned here without success including:

  • Editing sdk.dir in the local.properties
  • Trying to set ANDROID_HOME environment variable
  • Or adding an alias as kasiara mentioned

You should try to see if you are trying to build a directory project that is a part within a bigger project, and so it may cause problems. So load the entire project, and then run the project directory you'd like.

Upvotes: 0

Vincent Couturier
Vincent Couturier

Reputation: 526

You have also to ensure you have the correct SDK platform version installed in your environment by using SDK Manager.

Upvotes: 0

Bert Baker
Bert Baker

Reputation: 41

To fix this problem, I had to define the ANDROID_HOME environment variable in the Windows OS.

To do this, I went to the System control panel.
I selected "Advanced system settings" in the left column.
On the "Advanced" tab, I selected "Environment Variables" at the bottom.

Here, I did not have an ANDROID_HOME variable defined. For this case, I selected "New..." and:
1) for "Variable name" I typed ANDROID_HOME,
2) for "Variable value", I typed the path to my SDK folder, e.g. "C:\...\AppData\Local\Android\sdk".

I then closed Android Studio and reopened, and everything worked.

Thanks to Dibish (https://stackoverflow.com/users/2244411/dibish) for one of his posts that gave me this idea.

Upvotes: 2

Jonathan Cavell
Jonathan Cavell

Reputation: 51

I noticed that I get this error when I'm working on a new computer if I try to build from the command line first. However, if I build from Android Studio, it retrieves the SDK and creates the directory automatically. Then when I build from the command line it works.

Upvotes: 0

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'\'''

Upvotes: 2

markos14
markos14

Reputation: 88

Copy and paste the local.properties file from a project you created on your new computer to the folder containing the project from your old computer also works too if you don't want to (or know how to) create a new local.properties file.

Upvotes: 0

Mina Gabriel
Mina Gabriel

Reputation: 25170

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

Upvotes: 12

gursahib.singh.sahni
gursahib.singh.sahni

Reputation: 1597

specifying sdk.dir=<SDK_PATH> in local.properties in root folder solved my problem.

Upvotes: 1

Bruno Pinto
Bruno Pinto

Reputation: 2013

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

Upvotes: 4

Strong_it
Strong_it

Reputation: 11

I clone libgdx demo, can't import project. it also reminds like this.

Env:

Eclipse(Android-ADT)

window 7

so I create local.properties file at the project root, like following

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

I hope this can help others!

Upvotes: 0

lordhong
lordhong

Reputation: 1227

Had the same problem in IntelliJ 12, even though I have ANDROID_HOME env variable it still gives the same error. I ended up creating local.properties file under the root of my project (my project has a main project w/ a few submodules in its own directories). This solved the error.

Upvotes: 1

Gaku Ueda
Gaku Ueda

Reputation: 878

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/

Upvotes: 51

Related Questions