Nie znaleziono lokalizacji SDK. Zdefiniuj lokalizację za pomocą sdk.dir w pliku local.properties lub za pomocą zmiennej środowiskowej ANDROID_HOME

271

Niedawno próbowałem zaimportować przykładowe gry na Androida pobrane ze strony programisty Google. Po zaimportowaniu ich do Android Studio pojawia się następujący błąd:

Błąd: nie znaleziono lokalizacji zestawu SDK. Zdefiniuj lokalizację za sdk.dirpomocą pliku local.properties lub za pomocą ANDROID_HOMEzmiennej środowiskowej.

Co to jest? Chcę uruchomić przykładowe programy z Android Studio.

Sameer Shamsudeen
źródło

Odpowiedzi:

245

Wykonaj poniższe kroki, które działają dla mnie:

  • Idź do swojego reagującego projektu, a następnie przejdź do katalogu Androida Utwórz plik o następującej nazwie:

local.properties

  • Otwórz plik i wklej ścieżkę zestawu SDK systemu Android, jak poniżej:

Dla użytkowników systemu Windows:

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

Zastąp nazwę użytkownika nazwą użytkownika komputera. Upewnij się także, że folder to sdk lub Sdk. W moim przypadku nazwa użytkownika komputera to Zahid, więc ścieżka wygląda następująco:

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

Użytkownicy komputerów Mac:

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

Gdzie USERNAME to nazwa użytkownika OSX .

Użytkownicy systemu Linux (Ubuntu):

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

Gdzie nazwa_użytkownika to nazwa użytkownika linux (ścieżki Linux jest wielkość liter: upewnij się, że przypadek SwSdk meczach)

Jeśli to nie zadziała, dodaj zmienną ANDROID_HOME w „Zmiennych środowiskowych” jako C:\Users\USER\AppData\Local\Android\Sdk

enter image description here

Hoque MD Zahidul
źródło
pracuję z open cv, co powinienem zrobić, aby dodać NDK?
Innocent
Pomogło. Właściwie to rozwiązanie jest wskazane w samym sformułowaniu błędu. Używam IntelliJ na Macu i w strukturze projektu mam poprawną ścieżkę SDK. Dlaczego nadal potrzebuję tego w local.properties?
Aleksiej Martianow
244

W projekcie może brakować settings.gradlepliku. Upewnij się, że plik istnieje z importowanego projektu. Jeśli nie, dodaj settings.gradleplik z następującymi danymi:

include ':app'

Zapisz plik i umieść go w folderze najwyższego poziomu w swoim projekcie.

Joseph
źródło
16
Jak mogę sprawdzić, czy brakuje mojego projektu settings.gradle? Gdzie zwykle ten plik jest przechowywany? Gdzie mam pisać include ':app'? Co dokładnie robi include ':app'/ generuje? Czy możesz dodać więcej szczegółów do swojej odpowiedzi?
Tot Zam
1
@TotZam jest przechowywany w katalogu głównym twojego projektu
Joseph
2
Znaleziono to. Dzięki. Na przyszłość, gdzie miałbym uciec include ':app'? Jestem całkiem nowy na Androidzie i staram się znaleźć drogę.
Tot Zam
2
Nie uruchamiasz include :app, jeśli używasz Android Studio, co pozwala Android Studio dodać moduł projektu, dzięki czemu możesz go uruchomić bez dalszej konfiguracji. Po dodaniu linii settings.gradlezauważysz, że Playprzycisk uaktywnia się po zakończeniu budowania i pobierania pakietów przez gradla
Joseph,
1
Wpisz nazwę folderu projektu zamiast „aplikacji”, jeśli jest inna. To działa.
Priyank Patel
158

Wiem, że ta odpowiedź jest spóźniona, ale mam nadzieję, że pomoże innym.

Odpowiedź jest prosta. Musisz po prostu skopiować local.propertiesplik do folderu, w którym jest przechowywany projekt, i będzie działał jak urok. Pamiętaj jednak, że należy go umieścić w folderze głównym, w którym jest przechowywany projekt.

Harsh Mittal
źródło
3
Ale muszę to za każdym razem kopiować? To wydaje się być
hackem
Jest to najłatwiejsze rozwiązanie tego problemu, ponieważ nie musisz niczego zmieniać w projekcie. Są też inne rozwiązania, w których trzeba wprowadzić zmiany w kodzie, ale myślę, że w takim przypadku nie można sobie pozwolić na marnowanie dużo czasu.
Harsh Mittal,
To działało dla mnie, gdy miałem ten problem po pobraniu ExoPlayer 2.1.
user1147171,
2
Działa, ale czy Intelij nie powinien generować tego automatycznie? tks!
cesarsicas
4
To mi nie działa. Plik jest obecny, ale nadal mam błąd
rommex
42

Ten problem występuje podczas próby zaimportowania projektu Android Studio z ../app/build.gradle pliku .

Zaimportuj projekt, wybierając plik ../build.gradle znajdujący się w katalogu głównym projektu.

Michael Saffold
źródło
39

Proszę śledzić poniżej to, co dla mnie działa:

  1. Idź do swojego Project -> Android
  2. Utwórz plik local.properties
  3. Otwórz plik
  4. Wklej ścieżkę zestawu SDK Androida w zależności od systemu operacyjnego:

    4.a Windows

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

    4.b Linux lub MacOS

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

    Zamień na USERNAMEswoją nazwę użytkownika

Anjali-Systematix
źródło
Jest za późno na komentowanie, ale chcę wiedzieć, jak to zrobić w MacOS?
Nauman Moazzam
w MacOS musisz wykonać tę samą procedurę, po prostu musisz znaleźć ścieżkę do pliku SDK systemu Android i wkleić plik local.properties ... to wszystko
Shuvo,
37

Sprawdź w pliku local.properties

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

poprawnie napisz ten format, a także zaznacz / slas używając ścieżki

Qutbuddin Bohra
źródło
Edytowałem local.properties za pomocą tego sdk.dir = C: \\ Users \\ sameer \\ Android \\ adt-bundle-windows-x86-20140702 \\ sdk, każdy błąd w tym
Sameer Shamsudeen
tak po C umieść \ ... Svae z tą nadzieją zrobione. sdk.dir = C \: \\ Users \\ sameer \\ Android \\ adt-bundle-windows-x86-20140140702 \\ sdk
Qutbuddin Bohra
Działa to dobrze w przypadku zaćmienia. Po prostu utwórz plik local.properties w pobranym projekcie i wklej sdk.dir. W moim przypadku było to: „sdk.dir = C \: \\ adt-bundle-windows-x86_64-201401401 \\ sdk”
George Papatheodorou
jeśli ktoś stoi naprzeciwko Nie zaakceptowałeś umów licencyjnych ... błąd po powyższym kroku zobacz tutaj stackoverflow.com/a/41078173/1778834
yashhy
Zainstalowałem Androida na moim systemie Windows 10 m / c, ale nie ma takiego folderu sdk.dir = C \: \\ Users \\ USERNAME \\ AppData \\ Local \\ Android?
Gala Rohan
27

Oto obejście problemu, gdy klikniesz „Uruchom aplikację” (zielona strzałka) i uzyskasz następujące informacje w oknie dialogowym Edytuj konfigurację :

Błąd: wybierz zestaw Android SDK

W Android Studio:

  1. Z menu wybierz File > Settings .
  2. W oknie dialogowym ustawień przejdź do Appearance & Behavior > System Settings > Android SDK .
  3. Spójrz na górę dla lokalizacji zestawu SDK systemu Android i kliknij Editprzycisk
  4. Naciśnij Dalej, Dalej, Zakończ, aby zaakceptować wartości domyślne

Wydaje się, że zapisuje to lokalizację SDK - nawet jeśli nic się nie zmieniło - w jakąś wewnętrzną lokalizację. Sprawdziłem foldery .ideai, .gradleale nie widziałem, co Studio zrobiło, aby zmienić plik konfiguracyjny - ale teraz mogę uruchomić aplikację.

Podsumowując poprzednie poprawki - zwykle są one poprawne w przypadku repozytorium bez problemów z kompilacją:

  • plik local.properties jest kopiowany do folderu głównego przez Studio.

  • Ścieżka w pliku local.properties ma prawidłową ścieżkę do zestawu SDK systemu Android - w moim przypadku jest to sdk.dir=C:\\android\\sdk (zauważ, że ta ścieżka ma inny format - Studio powinno zapisać ten plik za Ciebie na podstawie pola wprowadzania tekstu w ustawieniach zestawu SDK systemu Android dialog)

  • plik settings.gradle jest obecny w repozytorium - i odwołuje się do folderu aplikacji (zazwyczaj: app)

Jim Andreas
źródło
3
To jedyna rzecz, która mi pomogła. Kroki # 3 i # 4 są bardzo ważne
sobota
16

Jeśli masz ten problem, gdy wyciągasz natywny projekt, wystarczy otworzyć projekt Androida w Android Studio. Wszystko, czego potrzebujesz, zostanie utworzone automatycznie.

  • Otwórz Android Studio
  • Plik -> Otwórz
  • Wybierz androidfolder w swoim macierzystym folderze projektu
  • Poczekaj, aż AndroidStudio zakończy konfigurację
  • Możesz teraz zamknąć Android Studio

LUB

Jeśli masz zainstalowany program uruchamiający wiersz poleceń AndroidStudio :

  • Uruchom to w swoim macierzystym folderze reagującym
studio android/
  • Poczekaj, aż AndroidStudio zakończy konfigurację
  • Możesz teraz zamknąć Android Studio
gianlucaparadise
źródło
1
To działa dla mnie
Vikram Rajput,
12

W systemie Linux:

Jeśli masz już pobrany zestaw SDK systemu Android, ale nie można go znaleźć.

Problemem może być to, że plik local.propertiesmusi znajdować się w tym samym katalogu co gradlepliki, aby gradlemożna go znaleźć podczas budowania i uruchamiania adb.

Dla mojego reagującego projektu używającego gradle musiałem umieścić local.propertiesplik w Myprojectname/android/folderze.

Ponieważ rozpakowałem SDK do Pobrań, po prostu używam tej ścieżki w pliku z wierszem takim jak ten:

sdk.dir=/home/USER/Downloads/android-sdk-linux
Mika
źródło
11

Rozwiązałem ten problem, tworząc zmienną środowiskową ANDROID_HOME w systemie Windows w następujący sposób.

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

Uruchom ponownie Android Studio, powinien zbudować projekt!

Mumair
źródło
Miałem już ANDROID_SDK, który wskazuje ten sam katalog, więc dla mnie był toANDROID_HOME=$ANDROID_SDK
Martijn
10

Natknąłem się na ten sam problem, ale jest nieco inny komunikat o błędzie

Nie znaleziono lokalizacji SDK. Zdefiniuj lokalizację za pomocą zmiennej środowiskowej ANDROID_SDK_ROOT lub ustawiając ścieżkę sdk.dir w pliku właściwości lokalnych projektu na „xxx”

MAC i ReactNative

Dodaj local.properties

  1. Znajdź lokalizację zestawu SDK systemu Android

    /Users/yourMacUserName/Library/Android/sdk
  2. Utwórz local.propertiespod rootProject/android/local.properties.

  3. Dodaj do niego ścieżkę SDK

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

To zwykle działa, ale jeśli pracujesz w zespole z innymi członkami zespołu, to yourMacUserName jest inaczej.

LUB

Ustaw ANDROID_SDK_ROOTzmienną

  1. Edytuj swój ~/.zshrclub~/.bashrc lub ...
  2. Dodaj ścieżkę SDK:

    export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
  3. Otwórz nową kartę terminala lub source ~/.zshrc
  4. echo $ANDROID_SDK_ROOT aby przetestować wydruk poprawnej ścieżki SDK.

Możesz też dodać swoją ścieżkę, aby użyć przydatnych poleceń.export PATH=${PATH}:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools

William Hu
źródło
9

Jeśli próbujesz uruchomić przykładowy kod Google Android, spróbuj zaimportować całe repozytorium zamiast pojedynczej próbki .

Oto odpowiednia sekcja z instrukcji.html zawarta w przykładowym kodzie interfejsu API Kalendarza Google

  • Importuj przykładowy projekt kalendarza-Androida
    • Wybierz „Importuj projekt ...” lub Plik> Importuj projekt ...
    • Wybierz [someDirectory] /google-api-java-client-samples/build.gradle i kliknij OK.
      • Uwaga: nie będzie działać, jeśli spróbujesz zaimportować [someDirectory] /google-api-java-client-samples/calendar-android-sample/build.gradle
    • Wybierz „Użyj lokalnej dystrybucji stopni” za pomocą opcji „Strona główna stopni” w [someDirectory] /gradle-2.2.1 i kliknij OK.
Nate
źródło
6

Nie ma jednego powodu tego błędu.

  1. settings.gradle może brakować lub treść może być niepoprawna.
  2. local.properties może brakować lub ścieżka SDK może być niepoprawnie zapisana.
Arhat Baid
źródło
1
jaki rodzaj treści powinien znajdować się w pliku settings.gradle?
cabanni
@cabanni settings.gradle po prostu dołącza moduł do twojej aplikacji. Domyślnie będzie to moduł „app”. Mam nadzieję, że to pomoże /
Arhat Baid
5

Wystarczy usunąć folder .idea i ponownie zaimportować projekt. To zadziałało dla mnie.

Akshay Sharma
źródło
4

utwórz plik local.properties w katalogu głównym swojego projektu o następującej treści

## 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
Ilker Baltaci
źródło
4
  1. Przejdź do swojego projektu React-native -> Android
  2. Utwórz plik local.properties

  3. Otwórz plik

  4. wklej ścieżkę zestawu SDK systemu Android jak poniżej

     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. Zamień USERNAME na swoją nazwę użytkownika

  6. Teraz uruchom w swoim terminalu natywnego run-androida

lub

Czasami w projekcie może brakować pliku settings.gradle. Upewnij się, że plik istnieje z importowanego projektu. Jeśli nie, dodaj plik settings.gradle z następującymi elementami:

    include ':app'

Zapisz plik i umieść go w folderze najwyższego poziomu w swoim projekcie.

Dinush Chathurya
źródło
3

umieść te dwie linie w pliku .bashrc i uruchom source ~/.bashrc

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

Zrobiłem to dla Linuksa (dla pierwszej linii)

export ANDROID_HOME=/home/$USER/Android/Sdk
Tzvetlin Velev
źródło
2

najlepszym i najłatwiejszym sposobem jest utworzenie nowego projektu dla systemu Android przenieś folder „app” z niedziałającego projektu do tego nowo utworzonego i dodaj wymagane zależności w gradiencie nowego projektu, a wszystko będzie działać idealnie)

Armen Hovhannisian
źródło
To rozwiązało problem zarówno w Mac High Serria, jak i Windows 10. Świetna odpowiedź i wydajność.
Val
2

Jeśli wszystko inne zawiedzie, skopiuj local.propertiesplik do katalogu głównego katalogu projektu. Po prostu.

tim4dev
źródło
2

Dla użytkowników komputerów Mac / Linux

Musisz dodać ANDROID_HOMEdo ścieżki, dodać następujące elementy do .bashrc || .zshrc || .profilepliku

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

Następnie uruchomić

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

Zmienne środowiskowe w bash_profile czy bashrc?

Różnica między .bashrc i .bash_profile

Junius L.
źródło
2

To rozwiązanie faktycznie działa dla mnie .. przejdź do tego komputera -> właściwości -> zaawansowane ustawienia systemowe -> zmienne środowiskowe -> następnie w zmiennej systemowej utwórz nową zmienną o nazwie ANDROID_SDK_ROOT i wartości C: \ Users {USERNAME (Zastąp ją swoją nazwą użytkownika } \ AppData \ Local \ Android \ Sdk

i upewnij się, że jeśli prawdziwy telefon komórkowy z Androidem za pomocą debugowania USB jest włączony. (bardzo ważne)

następnie zamknij cmd i uruchom ponownie, powinno działać.

Hrishikesh Baidya
źródło
2

W moim przypadku musiałem zamknąć Projekt i otworzyć go ponownie. Działa dobrze. Lubię to

Zamknij projekt

wprowadź opis zdjęcia tutaj

I znowu Open Project Again

wprowadź opis zdjęcia tutaj

Muhaiminur Rahman
źródło
Po dodaniu ścieżki sdk.dir, a także do ~ / .bashrc, nic nie działało. Ale potem zamknąłem i otworzyłem ponownie i zadziałało. Dzięki!
grc
1

Ten błąd wystąpił po świeżym klonowaniu repozytorium. Spodziewałem się, że plik local.properties zostanie wygenerowany automatycznie, ale tak nie było. Byłem w stanie go wygenerować, ponownie importując projekt Gradle.

File > Re-import Gradle Project
M. Palsich
źródło
To pomogło. Po uruchomieniu „Re-import Gradle Project” na konsoli wydrukowano 2 błędy, które pomogły mi wykryć problem: Znaleziono niepoprawną konfigurację Gradle JDK , Projekt JDK nie jest określony . Więc wszystko zaczęło działać po tym, jak naprawiłem ścieżkę JDK w Ustawieniach.
Michał Vician,
Po naprawieniu ścieżki JDK musiałem zrestartować IDE z opcją „Plik> Unieważnij pamięć podręczną / Uruchom ponownie ...”.
Michal Vician
1

Każdy, kto używa Jenkinsa, może się przydać

Musisz zdefiniować nazwę zmiennej globalnej ANDROID_HOME z wartością ścieżki do Androida SDK.

Tak jest w przypadku komputerów Mac /Users/YOUR_USER_NAME/Library/Android/sdk

touhid udoy
źródło
1

Myślałem, że brakuje pliku setting.gradle. Skopiuj ten plik do innego projektu i wklej swój projekt. Myślę, że zadziała.

w pliku setting.gradle,

include ':app'

to wszystko. Miłego dnia.

ozanurkan
źródło
1

Dla mnie problem polegał na tym, że nie stworzyłem żadnych urządzeń wirtualnych po świeżej instalacji Android Studio. Tak więc expo wciąż narzekało niejasno na lokalizację SDK, podczas gdy głównym problemem były brakujące urządzenia wirtualne. Mam nadzieję, że to pomoże komuś w przyszłości, kazało mi szukać przez kilka godzin.

PS: tutaj możesz dowiedzieć się, jak utworzyć jeden https://developer.android.com/studio/run/managing-avds

Omar Dulaimi
źródło
0

Sprawdź, 1. W ustawieniach modułu, czy lokalizacja SDK jest poprawna. 2. Jeśli tak, sprawdź plik local.properties (nie ten umieszczony w module aplikacji, ale ten umieszczony poza modułem aplikacji, na poziomie nadrzędnym). Jeśli nie jest obecny, dodaj go poniżej linii.

sdk.dir=/path/to/sdk/../Android/Sdk
Max Droid
źródło
0

Właśnie napotkałem ten problem, kiedy sklonowałem moje repozytorium od Github i pobiegłem ./gradlew clean assembleDebug. Potwierdzam, że mam plik ANDROID_HOME w moim pliku .bashrc.

Zaimportowałem projekt do Android Studio. Zauważyłem, że rozszerzenie pliku jest moim settings.gradle .kts, settings.gradle.kts. Po zakończeniu importowania uruchomiłem się ./gradlew clean assembleDebugi nie otrzymałem żadnego problemu.

Hesam
źródło
0

próbowałem

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

i działało, po prostu wkleiłem go w folderze projektu i na zewnątrz.

W zmiennej środowiskowej użyłem również powyższego linku sdk i nazwy ANDROID_HOMEjako nazwy ścieżki. Zamknij wszystko ponownie otwórz i Cabom to wszystko działało

John Akinola
źródło