Reattiva build Android nativa non riuscita. Posizione dell'SDK non trovata


473

Ho un errore quando inizio a eseguire Android

What went wrong:
A problem occurred evaluating project ':app'.  
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

Risposte:


843
  • Vai al android/ directory del tuo progetto di reazione nativo
  • Crea un file chiamato local.propertiescon questa linea:
sdk.dir = /Users/USERNAME/Library/Android/sdk

Dov'è il USERNAMEtuo nome utente macOS


* Cosa è andato storto: si è verificato un problema durante la configurazione del progetto ': app'. > La directory SDK '/ usr / local / android-sdk' non esiste. Ma in realtà il mio sdk esiste in questo percorso
Pyae Sone Nyein,

3
Ragazzi, avete risolto questo problema? Sto affrontando anche questo adesso.
Gasper Kolenc,

8
Sono stato in grado di risolvere questo problema eseguendo da Android Studio. Una volta fatto, funziona dalla riga di comando.
Gant Laborde,

Sì, creando quel local.properties ha risolto il mio problema. Strano ma funziona.
Sanj,

113
Se sei su windowssdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
Razze

423
  1. Vai al tuo progetto nativo di React -> Android
  2. Crea un file local.properties
  3. Apri il file
  4. incolla il tuo percorso SDK Android come di seguito

    • 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

Sostituisci USERNAMEcon il tuo nome utente

Ora, esegui il react-native run-androidnel tuo terminale.


4
Ho spostato il mio SDK sul mio disco esterno. Funziona con me usando macOS Sierra.
Ruelluna,

4
in linuxsdk.dir=/home/USERNAME/Android/Sdk
ebin il

sdk.dir = / home / USERNAME / Android / Sdk -> funziona per Linux ma Android Studio per Linux deve essere presente e funzionante (gradle running)
MarcoZen

Visualizzazione dell'errore * Cosa non ha funzionato: si è verificato un problema durante la configurazione del progetto ': app'. > La directory SDK '/ Users / chandni sharma / Library / Android / sdk' non esiste.
Chandni,

2
@Chandni Assicurati di avere Android SDK installato
a_rahmanshah

116

Puoi provare ad aggiungere ANDROID_PATH

export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

10
Ho già ANDROID_PATHin ambiente (Ubuntu, file .bashrc). Tuttavia, per alcuni motivi sto ancora riscontrando il problema. L'ho risolto creando local.propertiese inserendo il percorso come indicato in altre risposte.
Hesam

3
Ho un mac e vari var ANDROID_HOME non ha aiutato. local.propertiesfatto, tuttavia.
Henrik

60

Apri ~/.bash_profilee aggiungi:

 export ANDROID_HOME=~/Library/Android/sdk/
 export PATH=$PATH:~/android-sdks/platform-tools/
 export PATH=$PATH:~/android-sdks/tools/

inserisci qui la descrizione dell'immagine


10
Lavori. Ricordarsi di riavviare Terminal o digitare source ~/.bash_profileper rendere effettive le nuove linee di esportazione.
Raptor

Puoi aggiungere se un corpo non è in grado di trovare il profilo bash, quindi crearne uno come per i primi timer che non sono in grado di trovare (Quindi faccio io: p)
snehal agrawal

44

NON AGGIORNARE local.properties , è sicuramente una cattiva pratica.

Ecco come l'ho risolto. Aggiungi quanto segue in ~/.bash_profileo ~/.bashrc.

export ANDROID_HOME=/usr/local/share/android-sdk
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/build-tools/23.0.1:$PATH

Nota: ho usato brew caskper installare Android SDK seguendo queste istruzioni .


6
Questa è la risposta migliore, non è necessario modificare local.properties. Funziona perfettamente per me
mike_dz

perché quella cattiva pratica? sinceramente curioso in quanto sembra che apportare una modifica localizzata sia molto più sicuro che apportare una modifica al percorso del sistema
Robbie Milejczak

8
Perché se questo codice verrà controllato nel controllo del codice sorgente, la persona successiva che proverà a crearlo finirà per guardare questa pagina.
Dave Welling,

31

echo "sdk.dir = /Users/$(whoami)/Library/Android/sdk" > android/local.properties


1
Questo è il modo più sicuro perché non stai modificando alcun file di sistema globale. E per coloro che non hanno quel tipo di accesso di amministratore alla propria macchina.
GravyPlaya,

23

Se ti trovi su Windows Esc (aggiungi barre rovesciate) le barre rovesciate e i due punti nel android/local.propertiesfile. Se non è lì, crealo

sdk.dir = C\:\\Android\\sdk

2
Per Windows, l'SDK di Android è in C: \ Programmi \ Android \ android-sdk
Stephane

16

Passaggi aggiornati per React Native0.58 per iniziare su MAC / Unix

  • Apri bash_profile nel terminale

nano ~ / .bash_profile

export ANDROID_HOME = $ HOME / Libreria / Android / sdk

export PATH = $ PATH: $ ANDROID_HOME / emulatore

export PATH = $ PATH: $ ANDROID_HOME / tools

export PATH = $ PATH: $ ANDROID_HOME / tools / bin

export PATH = $ PATH: $ ANDROID_HOME / platform-tools

Control+S to save
Control+X to exit
Y to save changes
  • Aggiorna le modifiche nel terminale

source ~/.bash_profile

  • Convalida percorso:

echo $PATH

  • Conferma se tutto va bene:

adb devices


Mi ha salvato la vita :)
marco burrometo,

A volte è necessario chiudere e riaprire il terminale
Oluwatobi Samuel Omisakin,

14

Per utenti Windows

Una soluzione semplice è impostare il percorso dell'SDK sull'elenco delle variabili di ambiente.

  1. Vai alle variabili ambientali. (Il tuo PC> Proprietà)
  2. Crea nuovo variabili di sistema
  3. Impostare il nome della variabile su ANDROID_HOME
  4. Imposta il valore della variabile sulla tua posizione Android Sdk
  5. Premere OK (3 volte per 3 finestre di dialogo)

Nota:

Il tuo Android Sdk si trova generalmente in

C: \ Users \ YourUserName \ AppData \ Local \ Android \ Sdk

Assicurati di chiudere il tuo terminale attuale perché il tuo terminale contiene tutte le variabili d'ambiente preesistenti.


Questo è tutto. Non è necessario modificare local.properties, grazie.
Rhadamez Gindri Hercilio,

1
Funziona come un fascino 😊. Molte grazie!
Kapil Pandey,

Ricorda di riavviare il computer
mtoninelli il

1
mi mancava quella omg "chiudi il tuo terminale attuale" e ho provato quasi a rinunciare e ho letto di nuovo ahahah grazie! questo ha funzionato!
Michimcchicken,

11

Correzione degli errori del percorso dell'SDK nelle distribuzioni Linux


Il tuo progetto non sta trovando l'SDK impostato nelle Impostazioni del progetto tramite il percorso fornito, quindi il progetto deve puntare nella giusta direzione e hai un paio di opzioni per farlo, ma iniziamo prima trovando la cartella SDK corretta.


Trovare il tuo SDK


Da Gestione pacchetti


Se stai usando un'installazione JRE basata su pacchetti come Java 8 JRE tramite un PPA personalizzato in una distribuzione basata su Debian, o hai usato OpenJDK , la directory molto probabilmente sarà / usr / lib / jvm / java-8-oracle (o qualunque versione tu abbia scelto). È possibile trovare questo percorso impostato nella variabile di ambiente JAVA_HOME :

$ echo $JAVA_HOME
 /usr/lib/jvm/java-8-oracle

Download manuale


Se è stato installato tramite il download Java JRE / SDK , sarà ovunque sia stata posizionata la cartella, ad esempio / home / nomeutente /jdk-8u121_1.8.0 (o qualcosa di simile).

Le installazioni con script possono persino aggiungere l'SDK a / opt / java-8-oracle , ma al momento della stesura di questo documento, le istruzioni di installazione Java lasciano il posizionamento della cartella nelle tue mani.


Android Studio 2.2


Infine, se si utilizza Android Studio, l'SDK viene posizionato nel punto in cui è stato impostato per posizionare i file SDK scaricati tramite Gestione SDK di Studio. Andando su File> Impostazioni> Aspetto e comportamento> Impostazioni di sistema> SDK Android , puoi trovare l'impostazione della posizione dell'SDK in alto con l'opzione per cambiare e la cartella predefinita è ~ / Android / Sdk .

Percorso SDK di Android Studio

Impostazione del percorso SDK

Ora che sappiamo dove si trova l'SDK, è tempo di far sapere a React-native.


Opzione 1: impostare con local.properties


Questo metodo è molto semplice e tutto ciò che serve è creare il file local.properties nella seguente cartella, dove Project_Folder è la base della tua applicazione React-Native:

Project_Folder / Android / app

In local.properties, si desidera impostare la variabile sdk.dir sul percorso della cartella SDK:

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

Sebbene questo sia il modo più semplice per risolvere il problema, non è il migliore, specialmente se lavori con più progetti. Per ogni progetto, dovrai creare questo file per ogni progetto e se la cartella cambia pianifica di cambiare questo file per local.properties di ogni progetto.

Una volta salvato il file, rieseguire il comando run-android di reazione nativo .


Opzione 2: Cartelle delle impostazioni con variabili di ambiente


L'altra opzione è impostare le cartelle SDK sulle variabili di ambiente locali che React-Native cerca per impostazione predefinita. Per fare ciò, aggiungeremo il percorso ANDROID_HOME. Come bonus possiamo anche aggiungere i nostri strumenti Android nello stesso posto. Dobbiamo aggiungere questo piuttosto ai file .bash_profile o .profile nella nostra directory home, che vengono caricati per ultimi, in modo da poter fare in modo che nient'altro sovrascriva le impostazioni che eseguiamo. Dal momento che questi sono nella tua home directory, non è necessario modificarli con i privilegi di escalation.

**$ vim ~/.profile**  (use nano or pico if you prefer)

Nel file aggiungi le seguenti righe sostituendo la cartella SDK con quella che hai trovato sopra. Userò la cartella Android Studio come esempio:

export ANDROID_HOME="~/Android/Sdk"
export PATH=$PATH:~/Android/Sdk/tools:~/Android/Sdk/platform-tools

Salvare il file, quindi applicare le impostazioni del profilo:

$ source ~/.profile
$ echo $ANDROID_HOME
/home/dbrown/Android/Sdk

Se la cartella Sdk mostra correttamente, congratulazioni! Riesegui il tuo comando di reazione nativo e guarda il processo di compilazione dell'app continuare.


Se hai ancora problemi


Se per qualche motivo viene visualizzato l'errore " > non è stato possibile trovare la destinazione con la stringa hash 'android-23' nella cartella / sdk / , è necessario assicurarsi che la versione di build del progetto e la versione dell'SDK corrispondano (React -Native di default su 23.0.1) Puoi trovare la versione predefinita in Project_Folder / android / app / build.gradle , e quindi cercare buildToolsVersion . Puoi ovviamente cambiare la versione da questo file, oppure in Android Studio vai su File > Struttura del progetto per modificare l' SDK del progetto . Non consiglierei di cambiare questa versione a meno che tu non sappia assolutamente cosa stai facendo, altrimenti installa la versione dell'SDK che il progetto sta cercando.


7

È necessario scrivere il percorso completo corretto. Non usare '~ / Library / Android / sdk'

vi ~/.bashrc

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

source ~/.bashrc

7

Su Ubuntu, dove devi ottenere SDK separatamente da Android Studio strano il percorso funzionerà con Android Studio ma con React Native, dovrai creare un nome file local.properties.

Ad esempio inn ~/AwesomeProject/androide inserisci questa riga:
sdk.dir=/path/to/sdk/in/your/computer


4

Guarda nel tuo local.propertiesfile:

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

se il formato è corretto o meno


4

Se stai usando Ubuntu, vai alla directory Android del tuo progetto React-native e crea un file chiamato local.propertiese aggiungi il percorso Android SDK come segue:

sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk

4

Elimina il local.propertiesdalla cartella Android nel tuo progetto di reazione e provalo.

L'ho fatto e ci sono riuscito.


3

Copia l'altro progetto Android local.properties del tuo sistema e incollalo nella cartella Android del progetto nativo di React che funzionerà.


Complimenti per una soluzione furba e antiproiettile;)
Hack06

3

Questo ha funzionato per me.

Sto prendendo React Native di Stephen Grider su Udemy e uno degli studenti ha pubblicato questo post nella Lecture 50. Incollato alla riga di comando (senza "$" ovviamente).

$ export "ANDROID_HOME=/usr/local/opt/android-sdk" >~/.bash_profile

Non farlo. comporterà l'errore> The SDK directory '/usr/local/opt/android-sdk' does not exist.
thexande

3

La migliore soluzione che posso trovare è la seguente:

  1. Scarica Android Studio e SDK di tua scelta (Anche se pensi di non averne bisogno, fidati di me che ne avresti bisogno per rilasciare il file apk e alcune modifiche manuali al codice Android).
  2. File> Nuovo> Importa, punta alla posizione in cui si trova il tuo progetto Android nativo reattivo.
  3. Se ti viene richiesto di scaricare uno specifico SDK, scarica lo stesso. Può chiederti di aggiornare la pendenza ecc. Ti preghiamo di continuare ad aggiornare dove richiesto.
  4. Se hai un SDK Android esistente e conosci la versione, tutto ciò che devi fare è abbinare quella versione sotto build.gradle del tuo progetto Android.

Ecco come apparirà il file gradle:

inserisci qui la descrizione dell'immagine

Se tutto è andato bene con la configurazione della tua macchina e puoi compilare il progetto usando Android Studio, allora nulla ti fermerà per costruire la tua app tramite il comando android build nativo di reazione.

Con questo approccio, non solo risolverai il problema dell'SDK, ma risolverai anche molti problemi relativi alla configurazione della tua macchina per lo sviluppo Android. L'importazione troverà automaticamente la posizione dell'SDK e creerà local.properties. Quindi non devi preoccuparti di interventi manuali.


2

Per utenti Linux

La tua app non sta ottenendo il percorso di Android-SDK, quindi se stai usando Linux (Ubuntu), allora devi aggiungere un file chiamato "local.properties" e salvarlo nella cartella Android, che viene creata nella cartella della tua app .

È necessario aggiungere la riga di seguito all'interno del file local.properties, che è il percorso del tuo Android-SDK all'interno del sistema all'interno del sistema per eseguire l'app.

sdk.dir=/opt/android-sdk/

salva ed esegui nuovamente il comando reag-native run-android

O

puoi aprire il terminale, digitare

sudo nano ~ / .bashrc

e incolla il percorso seguente alla fine del file

export ANDROID_HOME = "/ opt / android-sdk /"

e riavvia il computer ed esegui di nuovo reag-native run-android dopo.

Nota: - Se si inserisce set path nel file .bashrc, non è nemmeno necessario creare il file local.properties.


Questa non dovrebbe essere una soluzione hardcoded ma dipende da dove è stato installato Android Studio SDK. Nel mio caso è sdk.dir = "pathWhereAndroidSDKisbeeninstalled / Android / Sdk"
Carmine Tambascia

2

Se si crea e si android studioproietta, è possibile visualizzare un local.propertiesfile creato nella directory principale del progetto. Quando crei un progetto nativo reattivo, non crea quel file per te. Quindi devi crearlo manualmente. E devi aggiungere skd dir ad esso. Quindi crea un nuovo file all'interno della cartella Android (su root). e metti il ​​tuo percorso sdk in questo modo sdk.dir=D\:\\Android\\SDK\\android_sdk_studio . Ricorda: rimuovi single \ con double. Proprio come sopra.


2

Esistono 2 modi per risolvere questo problema:

  1. Esegui semplicemente il tuo progetto Android nativo reattivo nello studio Android genererà automaticamente il tuo file local.properties nel progetto nativo reattivo Android.

  2. un. Vai a Progetto nativo di React -> Android
    b. Creare un file local.properties
    c. Apri il file
    d. Incolla il tuo percorso SDK Android come di seguito


1

Assicurati di avere installato l'emulatore e la versione Android corretti. Ciò ha risolto il problema per me.


1

Nella tua directory di progetto c'è una cartella chiamata "android" e al suo interno c'è il file local.properties. Elimina il file e la compilazione dovrebbe essere eseguita correttamente



0

Esistono due file gradle, cambia quello all'interno del tuo C: \ myapp \ android \ build.gradle e non nella directory parent myapp.

Sostituire 23.0.1 con la versione di Android Build Tool installata nel mio caso 25.0.0

Esegui reattivo nativo run-android per vedere la tua app nell'emulatore.


0

Basta aprire la cartella Android nel progetto di Android Studio . Android Studio crea il file necessario (local.properties) e scarica la versione SDK per eseguire Android necessario.


0

Sono su Windows e ho dovuto modificare il percorso sdk indipendentemente dal fatto che lo avessi in PATH env. variabile

sdk.dir=C:/Users/MY_USERNAME/AppData/Local/Android/Sdk

Modificato questo file:

MyProject\android\local.properties

0

Il problema è che hai configurato male le variabili di ambiente. Devi usare (in Windows) l'SDK di:C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

Per maggiori informazioni: https://facebook.github.io/react-native/docs/getting-started

Selezionare: Riattiva avvio rapido CLI nativo nella sezione Ambiente di sviluppo Android al punto 3. Configurare la ANDROID_HOMEvariabile di ambiente

Se lo fai come lo hai in questo momento, devi configurare ciascun progetto in modo da utilizzare le variabili di ambiente e se il progetto è tra più persone con le loro apparecchiature, può causare un problema. Se lo fai come ti ho detto, non dovrai configurare alcun progetto.


0

Se hai Android Studio installato, apri semplicemente Project/androidAndroid Studio e ti verrà notificato di cambiare il percorso della posizione dell'SDK nel progetto.


-2

Copia l'altro progetto Android local.properties del tuo sistema e incollalo nella cartella Android del progetto nativo di React che funzionerà.

sdk.dir=C\:\\Users\\paul\\AppData\\Local\\Android\\Sdk

C \: \\ Users \\ champika \\ AppData \\ Local \\ Android \\ Sdk
champika wishwanath
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.