SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable

AndroidAndroid StudioAndroid Studio-Import

Android Problem Overview


I recently tried to import sample Android games I downloaded from Google's developer website. After importing them into Android Studio, I'm getting the following error:

>Error: SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

What is this? I want to run the sample programs from Android Studio.

Android Solutions


Solution 1 - Android

Please follow below steps it work's for me:

  • Go to your react-native Project then go to android directory Create a file with following name:

> local.properties

  • Open the file and paste your Android SDK path like below:

For windows users:

sdk.dir=C:\\Users\\UserName\\AppData\\Local\\Android\\sdk

Replace UserName with your pc user name . Also make sure the folder is sdk or Sdk. In my case my computer user name is Zahid so the path look like:

sdk.dir=C:\\Users\\Zahid\\AppData\\Local\\Android\\sdk

For Mac users:

sdk.dir = /Users/USERNAME/Library/Android/sdk

Where USERNAME is your OSX username.

For Linux (Ubuntu) users:

sdk.dir = /home/USERNAME/Android/Sdk

Where USERNAME is your linux username(Linux paths are case-sensitive: make sure the case of S in Sdk matches)

In case if this doesn't work, add ANDROID_HOME variable in "Environment Variables" as C:\Users\USER\AppData\Local\Android\Sdk

enter image description here

Solution 2 - Android

The project might be missing a settings.gradle file. Make sure that file exists from the project you are importing. If not add the settings.gradle file with the following :

include ':app'

Save the file and put it at the top level folder in your project.

Solution 3 - Android

I know this answer is late, but I hope it helps others.

The answer is simple. You have to just copy your local.properties file to the folder where project is stored and it will work like charm. But remember, it must be placed in the root folder where the project is stored.

Solution 4 - Android

Please follow bellow points it work's for me:

  1. Go to your Project -> Android

  2. Create a file local.properties

  3. Open the file

  4. Paste your Android SDK path depending on the operating system:

    4.a Windows

    sdk.dir = C:/Users/USERNAME/AppData/Local/Android/sdk

    4.b Linux or MacOS

    sdk.dir = /home/USERNAME/Android/sdk

    Replace USERNAME with your user name

Solution 5 - Android

Check out in your local.properties file

sdk.dir=C\:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk

properly write this format, and also check / slas using for path

Solution 6 - Android

This problem is encountered when you try to import an Android Studio project from the ../app/build.gradle file.

Import the project by selecting the ../build.gradle file located in the root directory of your project.

Solution 7 - Android

Here is a work around for the problem when you click "Run App" (green arrow) and get the following in the Edit Configuration dialog:

> Error: Please select Android SDK

In Android Studio, do:

  1. From the menu, choose File > Settings.
  2. In the settings dialog, go to Appearance & Behavior > System Settings > Android SDK.
  3. Look at the top for Android SDK Location, and click the Edit button
  4. Hit Next, Next, Finish to accept the defaults

This seems to save away the SDK location - even though nothing has changed - into some internal location. I inspected the .idea and .gradle folders but didn't see what Studio did to change a config file - but now I can run the app.

And to summarize the previous fixes - these are normally OK for a repo without build problems:

>- local.properties file is copied into the root folder by Studio.

>- The path in the local.properties file has the correct path to the android SDK - in my case it is sdk.dir=C:\\android\\sdk (note that this path has a different format - Studio should write this file for you based on the Text Entry field in the Android SDK Settings dialog)

>- settings.gradle file is present in the repo - and references the application folder (typically :app)

Solution 8 - Android

I came across the same issue but a little bit different error message is

> 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 "xxx"

MAC & ReactNative

Add local.properties

  1. Find your Android SDK location

    /Users/yourMacUserName/Library/Android/sdk
    
  2. Create local.properties under rootProject/android/local.properties.

  3. Add sdk path into it

    sdk.dir = /Users/yourMacUserName/Library/Android/sdk
    

This normally works, but if you are working in a team with other team members, then yourMacUserName is different.

OR

Set ANDROID_SDK_ROOT variable

  1. Edit your ~/.zshrc or ~/.bashrc or ...

  2. Add SDK path:

    export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
    
  3. Open a new terminal tab or source ~/.zshrc

  4. echo $ANDROID_SDK_ROOT to test the print correct SDK path.

Alternatively, you also can add your path export PATH=${PATH}:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools to use some useful commands.

Solution 9 - Android

  1. Go to your React-native Project -> Android

  2. Create a file local.properties

  3. Open the file

  4. paste your Android SDK path like below

     in Windows sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
    
     in macOS sdk.dir = /Users/USERNAME/Library/Android/sdk
    
     in linux sdk.dir = /home/USERNAME/Android/Sdk
    
  5. Replace USERNAME with your user name

  6. Now, Run the react-native run-android in your terminal

or

Sometimes project might be missing a settings.gradle file. Make sure that file exists from the project you are importing. If not add the settings.gradle file with the following :

include ':app'

Save the file and put it at the top level folder in your project.

Solution 10 - Android

If you have this problem when you pull a react-native project, you just need to open the android project with Android Studio. Everything you need will be automatically created.

  • Open Android Studio
  • File -> Open
  • Choose the android folder under your react-native project folder
  • Wait for AndroidStudio to complete setup
  • You can now close Android Studio

OR

If you have installed the AndroidStudio command line launcher:

  • Run this in your react-native root folder
studio android/
  • Wait for AndroidStudio to complete setup

  • You can now close Android Studio

Solution 11 - Android

In Linux:

If you have already downloaded the android SDK but its not being found.

The problem might be that the file local.properties needs to be inside the same directory as gradle stuff for gradle to find it when building and running adb.

For my react-native project using gradle I needed to put the local.properties file to Myprojectname/android/ folder.

As I had unzipped the SDK to Downloads so I just use that path in the file with a row like this:

sdk.dir=/home/USER/Downloads/android-sdk-linux

Solution 12 - Android

I resolved this issue by creating ANDROID_HOME environment variable as follows in windows.

ANDROID_HOME=C:\Users\<user_name>\AppData\Local\Android\sdk

Restart Android Studio it should build project!

Solution 13 - Android

If you are trying to run Google android sample code, try to import the entire repository instead of an individual sample.

Here is instructions.html, included with the Google Calendar API sample code.

> - Import calendar-android-sample project > - Select "Import Project..." or File > Import Project... > - Select [someDirectory]/google-api-java-client-samples/build.gradle and > click OK. > - Note: it will not work if you try to import [someDirectory]/google-api-java-client-samples/calendar-android-sample/build.gradle > - Select "Use local gradle distribution" with "Gradle home" of [someDirectory]/gradle-2.2.1 and click OK.

Solution 14 - Android

Just Remove .idea folder and import the project again. It's worked for me.

Solution 15 - Android

There is not a single reason for this error.

  1. settings.gradle may be missing or the content in it may be wrong.
  2. local.properties may be missing or the sdk path may be wrongly written.

Solution 16 - Android

I had this error in flutter so i fixed it by going to android->app->build.gradle

and changing targetSdkVersion from 28 to 29 and compileSdkVersion to 29 from 28 and it worked for me

Solution 17 - Android

In my case I was using linux and putting double quote around the path inside local.properties like

sdk.dir = "/root/Android/Sdk/"
export ANDROID_SDK_ROOT = "/root/Android/Sdk/"

So it should be

sdk.dir = /root/Android/Sdk/
export ANDROID_SDK_ROOT = /root/Android/Sdk/

and .bash_profile

enter image description here

Solution 18 - Android

create a local.properties file in your root directory of your project with the following content

## 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.
#Tue Oct 24 17:40:53 CEST 2017

sdk.dir=/Users/****/Library/Android/sdk

Solution 19 - Android

In my case, I had to close Project and open again. It worked fine. Like This

Close Project

enter image description here

And again Open Project Again

enter image description here

Solution 20 - Android

Follow followings steps :

  1. Create a file under 'android' folder with name 'local.properties'

  2. Add this line in file 'local.properties' as

    sdk.dir=/Users/bijendrasingh/Library/Android/sdk

Add here your android sdk path.

Solution 21 - Android

put these two lines in your .bashrc file and run source ~/.bashrc

export ANDROID_HOME=/Users/$USER/Library/Android/sdk export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

For linux I did this.(For the first line)

export ANDROID_HOME=/home/$USER/Android/Sdk

Solution 22 - Android

This solution actually works for me.. go to this pc -> properties -> advanced system settings -> environment variables -> then in system variable create new variable with name ANDROID_SDK_ROOT and value C:\Users{USERNAME(Replace it with your username}\AppData\Local\Android\Sdk

and make sure that if real android mobile using usb debugging is enabled. (very important)

then close cmd and restart it should work.

Solution 23 - Android

There can be two different possibilities :

1). Either you SDK location is incorrect in local.properites file.

2). Or the file is missing, this can happen if you have cloned a project, so just create a local.properites file under Gradle Scripts foler, and then set up the sdk path.

Set up the correct sdk path like this :

sdk.dir=YOUR_PATH_TO_THE_SDK

For mac users the path should be:

/Users/USER_NAME/Library/Android/sdk

For windows users the path should be:

c:\Users\USER_NAME\AppData\Local\Android\Sdk 

Solution 24 - Android

the best and the easiest way is to create new Android project move "app" folder from non working project to that newly made one and add the needed dependencies in the gradle of your new project and everything will work perfectly )

Solution 25 - Android

I got this error after freshly cloning a repository. I expected local.properties to be generated automatically, but it wasn't. I was able to generate it by re-importing the Gradle project.

File > Re-import Gradle Project

Solution 26 - Android

If all else fails, copy the local.properties file to the root of the project directory. Simply.

Solution 27 - Android

For Mac/Linux users

You need to add ANDROID_HOME to your path, add the following to your .bashrc || .zshrc || .profile file

# change $HOME to the path where you installed android Sdk
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools

Then run

$ source ~/.bashrc || .zshrc || .profile

Environment variables in bash_profile or bashrc?

Difference between .bashrc and .bash_profile

Solution 28 - Android

Check,

  1. In Module settings, whether, SDK location is proper.

  2. If Yes, check for local.properties file (Not the one placed inside app module, but the one placed outside the app module, at parent level). If not present add it with below lines inside it.

    sdk.dir=/path/to/sdk/../Android/Sdk

Solution 29 - Android

Found working solution for me. Without adding local.properties and set up ANDROID_HOME variable. Seems like a bug in Android Studio and Intellij IDEA. You just need to ask IDE to "reset" path to Android SDK. https://stackoverflow.com/questions/40298653/sdk-location-not-found-in-android-studio-despite-having-the-environment-variab/45479895#45479895

Solution 30 - Android

I find My Solution too. I just Sync Gradle I have all folders (settings .gradle,..) but I take this error .. I just Run Sync Project With Gradle File and EditSdkLocation And be ok ...

Solution 31 - Android

Anyone using Jenkins, might get it useful

You need to define a global variable name ANDROID_HOME with the value of the path to android sdk.

For mac, it is /Users/YOUR_USER_NAME/Library/Android/sdk

Solution 32 - Android

i was thinking your setting.gradle file is missing. Copy this file another project and paste your project.It will work i think.

in setting.gradle file ,

include ':app'

thats all. Have a good day.

Solution 33 - Android

For me the problem was that I haven't created any virtual devices after fresh installation of android studio. So, expo kept complaining vaguely about the sdk location while the main issue was the missing virtual devices. Hope this helps somebody in the future, had me searching for a couple of hours.

PS: here you can find out how to create one https://developer.android.com/studio/run/managing-avds

Solution 34 - Android

  1. cd ./android, create file file local.properties

  2. paste this code sdk.dir=C\:\\Users\\muhammad ali\\AppData\\Local\\Android\\Sdk

  3. change location to as per your sdk is located. you already have local.properties file, good

  4. find similar file of code sdk.dir=C\:\\Users\\muhammad ali\\AppData\\Local\\Android\\Sdk

  5. change location to as per your sdk is located

  6. run npx react-native run-android

Solution 35 - Android

The issue I had is that local.properties was committed into git repository even though it says explicitly not to do it ## This file must *NOT* be checked into Version Control Systems,.

To fix the issue locally on MacOS I just went to File > Project Structure... in Android Studio and it fixed it automatically.

To fix the issue in the git I executed the following commands in the project root directory:

echo -e "\nlocal.properties" >> .gitignore
git add .gitignore
git rm local.properties --cached
git commit -m "Removed local.properties from the git"

Solution 36 - Android

I had a situation where I already had the local.properties file set up but I was still getting this error. Turns out, if your project has a submodule, you have to copy the local.properties into the submodule folder as well.

Solution 37 - Android

  • first scenario :-

look for local.properties file in your project and set sdk path.

  • second scenario :-

if you you don't have one then copy from other project and set it according your sdk path .

Solution 38 - Android

I solved that issue with File/Invalide cache/Restart, then click on Set SDK.... when prompted by the error.

Solution 39 - Android

I just faced the issue when I cloned my repo from Github and ran ./gradlew clean assembleDebug. I confirm I have ANDROID_HOME in my .bashrc file.

So, I imported the project into Android Studio. Noticed that extension of my settings.gradle file is .kts, settings.gradle.kts. When I am done with import then I ran ./gradlew clean assembleDebug and didn't get any issue.

Solution 40 - Android

I tried

sdk.dir = \Users\OLUWAGBEMIGA\AppData\Local\Android\sdk 

and it worked, I simply pasted it in the project folder and outside.

In the environment variable I also used the sdk link above and the name ANDROID_HOME as the path name. Close everything reopen and Cabom it all worked

Solution 41 - Android

In my case i had the error sdk location not found

What i did: I went to the cloned project from git opened the project directory opened the app directory inside the project copied the local.properties file and then pasted it in the project directory Then it worked

Solution 42 - Android

For me, this problem is caused by opening the cloned project with "open an existing project" instead of "import".

The file "setting.gradle" already exists in the downloaded project. However, it doesn't get picked up by Android Studio using "open an existing project" option, only "import" will impose Android Studio to interpret the whole project settings.

The same idea has been mentioned implicitly in M.Palsich's answer.

Solution 43 - Android

As I checked that some are still getting error when they create local.properties file in Android directory and writes the path. The reason you're getting error is because there's spelling mistake in writing path.

Solution 44 - Android

  1. Go to your local properties file

  2. Check the Sdk location (It might have been changed if you have imported file with a another user's Sdk location, find yours and get it right, that's it).

Solution 45 - Android

Open Android Studio, go to the File menu and select File Structure and specify an SDK with compileSdkVersion or targetSdkVersion that you defined in the "app/build.gradle" file.

Solution 46 - Android

If you are using Flutter you clearly try to change the name from Androidmainfest.xml just don't change it back to the old name some packages would help you with that in pub.dev

Solution 47 - Android

enter image description here

Go to the android folder and create local.properties files and paste your SDK path

Solution 48 - Android

To know the exact sdk files in your directory, got to android studio, select tools>sdk

just copy and make sure it got double // in your path.

Hope it can help

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSameer ShamsudeenView Question on Stackoverflow
Solution 1 - AndroidHoque MD ZahidulView Answer on Stackoverflow
Solution 2 - AndroidJosephView Answer on Stackoverflow
Solution 3 - AndroidHarsh MittalView Answer on Stackoverflow
Solution 4 - AndroidAnjali-SystematixView Answer on Stackoverflow
Solution 5 - AndroidQutbuddin BohraView Answer on Stackoverflow
Solution 6 - AndroidMichael SaffoldView Answer on Stackoverflow
Solution 7 - AndroidJim AndreasView Answer on Stackoverflow
Solution 8 - AndroidWilliam HuView Answer on Stackoverflow
Solution 9 - AndroidDinush ChathuryaView Answer on Stackoverflow
Solution 10 - AndroidgianlucaparadiseView Answer on Stackoverflow
Solution 11 - AndroidMikaView Answer on Stackoverflow
Solution 12 - AndroidmumairView Answer on Stackoverflow
Solution 13 - AndroidNateView Answer on Stackoverflow
Solution 14 - AndroidAkshay SharmaView Answer on Stackoverflow
Solution 15 - AndroidArhat BaidView Answer on Stackoverflow
Solution 16 - AndroidZeeshan MehdiView Answer on Stackoverflow
Solution 17 - AndroidTAHA SULTAN TEMURIView Answer on Stackoverflow
Solution 18 - AndroidIlker BaltaciView Answer on Stackoverflow
Solution 19 - AndroidMuhaiminur RahmanView Answer on Stackoverflow
Solution 20 - AndroidBijendra SinghView Answer on Stackoverflow
Solution 21 - AndroidTzvetlin VelevView Answer on Stackoverflow
Solution 22 - AndroidHrishikesh BaidyaView Answer on Stackoverflow
Solution 23 - AndroidAnubhavView Answer on Stackoverflow
Solution 24 - AndroidArmen HovhannisianView Answer on Stackoverflow
Solution 25 - AndroidM. PalsichView Answer on Stackoverflow
Solution 26 - Androidtim4devView Answer on Stackoverflow
Solution 27 - AndroidJunius L.View Answer on Stackoverflow
Solution 28 - AndroidMax DroidView Answer on Stackoverflow
Solution 29 - AndroidAndrew WebtestuserView Answer on Stackoverflow
Solution 30 - Androiduser7268353View Answer on Stackoverflow
Solution 31 - Androidtouhid udoyView Answer on Stackoverflow
Solution 32 - AndroidozanurkanView Answer on Stackoverflow
Solution 33 - AndroidOmar DulaimiView Answer on Stackoverflow
Solution 34 - AndroidMuhammad AliView Answer on Stackoverflow
Solution 35 - AndroidAnton PlebanovichView Answer on Stackoverflow
Solution 36 - AndroidSharpView Answer on Stackoverflow
Solution 37 - AndroidNikit DungraniView Answer on Stackoverflow
Solution 38 - AndroidLucasView Answer on Stackoverflow
Solution 39 - AndroidHesamView Answer on Stackoverflow
Solution 40 - AndroidJohn AkinolaView Answer on Stackoverflow
Solution 41 - AndroidDingaView Answer on Stackoverflow
Solution 42 - AndroidStndFishView Answer on Stackoverflow
Solution 43 - AndroidSleepinggodView Answer on Stackoverflow
Solution 44 - AndroidNEERAJ SHETTIGARView Answer on Stackoverflow
Solution 45 - AndroidSarmad Ashfaq ChaudharyView Answer on Stackoverflow
Solution 46 - AndroidgboliknowView Answer on Stackoverflow
Solution 47 - AndroidSourabh GeraView Answer on Stackoverflow
Solution 48 - AndroidAsyraf RoszakiView Answer on Stackoverflow