Reagir a construção do Android nativo falhou. Local do SDK não encontrado

473

Tenho um erro quando começo a executar o 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.
Pyae Sone Nyein
fonte

Respostas:

843
  • Vá para o android/diretório do seu projeto react-native
  • Crie um arquivo chamado local.propertiescom esta linha:
sdk.dir = /Users/USERNAME/Library/Android/sdk

Onde USERNAMEestá o seu nome de usuário do macOS

Ravin
fonte
* O que deu errado: ocorreu um problema ao configurar o projeto ': app'. > O diretório do SDK '/ usr / local / android-sdk' não existe. Mas na verdade o meu SDK é existir neste caminho
Pyae Sone Nyein
3
Vocês resolveram esse problema? Eu também estou enfrentando isso agora.
Gasper Kolenc
8
Consegui corrigir isso executando o Android Studio. Depois de fazer isso, ele funciona na linha de comando.
Gant Laborde 01/02
Sim, criar esse local.properties resolveu meu problema. Estranho, mas funciona.
21316
113
Se você está no Windows #sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
319
422
  1. Vá para o projeto React-native -> Android
  2. Crie um arquivo local.properties
  3. Abra o arquivo
  4. cole seu caminho do SDK do Android como abaixo

    • no Windows sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
    • no macOS sdk.dir = /Users/USERNAME/Library/Android/sdk
    • no linux sdk.dir = /home/USERNAME/Android/Sdk

Substitua USERNAMEpelo seu nome de usuário

Agora, execute o react-native run-androidno seu terminal.

Naveen TP
fonte
4
Mudei meu SDK para minha unidade externa. Funciona para mim usando o macOS Sierra.
Ruelluna
4
no linuxsdk.dir=/home/USERNAME/Android/Sdk
ebin 05/10
sdk.dir = / home / usuário / Android / SDK -> trabalha para linux, mas Estúdio Android para Linux precisa estar presente e trabalhando (execução Gradle)
MarcoZen
Mostrando erro * O que deu errado: ocorreu um problema ao configurar o projeto ': app'. > O diretório do SDK '/ Usuários / chandni sharma / Library / Android / sdk' não existe.
Chandni
2
@Chandni Verifique se o Android SDK está instalado
a_rahmanshah
116

Você pode tentar adicionar ANDROID_PATH

export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Nish
fonte
10
Eu já tenho ANDROID_PATHno ambiente (Ubuntu, arquivo .bashrc). No entanto, por alguns motivos, ainda estou entendendo o problema. Corrigi-o criando local.propertiese colocando o caminho conforme indicado em outras respostas.
Hesam
3
Eu tenho um mac e env var ANDROID_HOME não ajudou. local.propertiesfez, no entanto.
Henrik
60

Abra ~/.bash_profilee adicione:

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

insira a descrição da imagem aqui

notdrone
fonte
10
Trabalho. Lembre-se de reiniciar o Terminal ou digite source ~/.bash_profilepara fazer com que novas linhas de exportação entrem em vigor.
Raptor
Você pode por favor adicionar se qualquer corpo é incapaz de encontrar o bash_profile em seguida, criar um como para os primeiros temporizadores que eles são incapazes de descobrir que (Então eu: p)
snehal agrawal
44

NÃO ATUALIZE local.properties , é definitivamente uma má prática.

Foi assim que eu consertei. Adicione o seguinte em ~/.bash_profileou ~/.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: Eu costumava brew caskinstalar o Android SDK seguindo estas instruções .

locropulenton
fonte
6
Essa é a melhor resposta, não há necessidade de alterar local.properties. Funciona perfeito para mim #
585 mike_dz
por que essa prática é ruim? genuinamente curioso como parece que fazer uma mudança localizada é muito mais seguro do que fazer uma alteração no seu caminho do sistema
Robbie Milejczak
8
Como se esse código for verificado no controle de origem, a próxima pessoa que tentar criar com ele acabará visualizando esta página.
Dave Welling
31

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

snowcamel
fonte
1
Essa é a maneira mais segura, pois você não está alterando nenhum arquivo de sistema global. E para aqueles que não têm esse tipo de acesso de administrador à sua máquina.
GravityPlaya
23

Se você estiver no Windows, escape (adicione barras invertidas) às barras invertidas e dois pontos no android/local.propertiesarquivo. Se não estiver lá, crie-o

sdk.dir = C\:\\Android\\sdk
Sajjad Ashraf
fonte
2
Para o Windows, o Android SDK está em C: \ Program Files \ Android \ android-sdk
Stephane
16

Etapas atualizadas para o React Native0.58 começar no MAC / Unix

  • Abra o bash_profile no terminal

nano ~ / .bash_profile

exportar ANDROID_HOME = $ HOME / Biblioteca / Android / sdk

exportar PATH = $ PATH: $ ANDROID_HOME / emulador

exportar PATH = $ PATH: $ ANDROID_HOME / tools

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

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

Control+S to save
Control+X to exit
Y to save changes
  • Atualizar alterações no terminal

source ~/.bash_profile

  • Validar caminho:

echo $PATH

  • Confirme se está tudo bem:

adb devices

Hitesh Sahu
fonte
Salvou minha vida :)
marco burrometo
Às vezes você precisa fechar e reabrir o seu terminal
Oluwatobi Samuel Omisakin
14

Para usuários do Windows

Uma solução simples é definir o caminho do SDK para a lista Variáveis ​​de ambiente.

  1. Vá para as variáveis ​​ambientais. (Seu PC> Propriedades)
  2. Criar novas variáveis ​​de sistema
  3. Defina o nome da variável como ANDROID_HOME
  4. Defina o valor da variável como local do Android Sdk
  5. Pressione OK (3 vezes para 3 caixas de diálogo)

Nota:

Seu Android Sdk geralmente está localizado em

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

Certifique-se de fechar o terminal atual, pois ele contém todas as variáveis ​​de ambiente preexistentes.

Ozesh
fonte
É isso. Não há necessidade de editar o local.properties, obrigado.
Rhadamez Gindri Hercilio 18/04/19
1
Funciona como um encanto 😊. Muito obrigado!
kapil pandey 22/01
Lembre-se de reiniciar sua máquina
mtoninelli 26/01
1
perdi aquele "feche seu terminal atual" omg e tentei quase desisti e li novamente hahaha obrigado! isso funcionou!
Michimcchicken
11

Corrigindo erros de caminho do SDK em distribuições Linux


Seu projeto não está encontrando o SDK definido nas Configurações do projeto pelo caminho fornecido, portanto, o projeto precisa estar apontando na direção certa e você tem algumas opções para fazer isso, mas vamos começar localizando a pasta SDK correta primeiro.


Localizando seu SDK


Do Gerenciador de Pacotes


Se você estiver usando uma instalação do JRE baseada em pacote, como o Java 8 JRE, por meio de um PPA personalizado em uma distribuição baseada no Debian ou usado o OpenJDK , o diretório provavelmente será / usr / lib / jvm / java-8-oracle (ou qualquer versão que você escolher). Você pode encontrar este caminho definido na variável de ambiente JAVA_HOME :

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

Download manual


Se você instalou por meio do download do Java JRE / SDK , ele estará onde quer que você tenha colocado a pasta, por exemplo, / home / nomedeusuário /jdk-8u121_1.8.0 (ou algo semelhante).

As instalações com script podem até adicionar o SDK a / opt / java-8-oracle , mas até o momento, as instruções de instalação do Java deixam o posicionamento da pasta em suas mãos.


Android Studio 2.2


Por fim, se você estiver usando o Android Studio, o SDK é colocado onde você o configurou para colocar os arquivos do SDK baixados por meio do SDK Manager do Studio. Acessando Arquivo> Configurações> Aparência e comportamento> Configurações do sistema> SDK do Android , você pode encontrar a configuração do local do SDK na parte superior com a opção de alterar e a pasta padrão sendo ~ / Android / Sdk .

Caminho do SDK do Android Studio

Definindo o caminho do SDK

Agora que sabemos onde está o SDK, é hora de informar o nativo da reação.


Opção 1: Configure com local.properties


Esse método é muito simples e tudo o que é necessário é criar o arquivo local.properties na seguinte pasta, em que Project_Folder é a base do seu aplicativo React-Native:

Pasta Projeto / Android / Aplicativo

Em seu local.properties, você deseja definir a variável sdk.dir para o caminho da sua pasta SDK:

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

Embora essa seja a maneira mais fácil de solucionar o problema, ela não é a melhor, especialmente se você trabalha com vários projetos. Para cada projeto, você precisará criar esse arquivo para cada projeto e, se a pasta mudar, planeje alterar esse arquivo para o local.properties de cada projeto.

Depois que o arquivo for salvo, execute novamente o comando react-native run-android .


Opção 2: pastas de configurações com variáveis ​​de ambiente


A outra opção é definir as pastas do SDK para as variáveis ​​de ambiente local que o React-Native procura por padrão. Para fazer isso, adicionaremos o caminho ANDROID_HOME. Como bônus, também podemos adicionar nossas ferramentas para Android no mesmo local. Precisamos adicionar isso aos arquivos .bash_profile ou .profile em nosso diretório pessoal, os quais são carregados por último, para garantir que nada mais substitua as configurações que fazemos. Como eles estão no diretório inicial, não há necessidade de editar com privilégios escalados.

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

No arquivo, adicione as seguintes linhas, substituindo a pasta SDK pela que você encontrou acima. Vou usar a pasta Android Studio como exemplo:

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

Salve o arquivo e aplique as configurações do perfil:

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

Se a pasta Sdk aparecer corretamente, parabéns! Execute novamente o comando react-native e observe o processo de criação do aplicativo continuar em frente.


Se você ainda tiver problemas


Se, por algum motivo, você receber o erro " > falhou ao encontrar o destino com a string de hash 'android-23' em: sua pasta / sdk / , será necessário garantir que a versão de compilação do projeto e a versão do SDK instalado correspondam (React (O padrão é 23.0.1). Você pode encontrar a versão padrão em Project_Folder / android / app / build.gradle e, em seguida, procurando por buildToolsVersion . É claro que você pode alterar a versão deste arquivo ou, no Android Studio, vá para File > Estrutura do projeto para mudar o SDK do projeto . Eu não sugiro mudar esta versão, a menos que você absolutamente sabe o que está fazendo, caso contrário, instalar a versão SDK o projeto está procurando.

DBrown
fonte
7

Você deve escrever o caminho completo correto. Não use '~ / 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
hoi
fonte
7

No Ubuntu, onde você tem que obter SDK separadamente do Android Estúdio estranho o caminho vai funcionar com o Android Studio, mas com Reagir nativa, você precisa criar um nome de arquivolocal.properties .

Por exemplo, inn ~/AwesomeProject/androide insira esta linha:
sdk.dir=/path/to/sdk/in/your/computer

connelblaze
fonte
4

Confira em seu local.propertiesarquivo:

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

se o formato é adequado ou não

Makvin
fonte
4

Se você estiver usando o Ubuntu, basta ir ao diretório android do seu projeto react-native e criar um arquivo chamado local.propertiese adicionar o caminho android sdk a ele da seguinte forma:

sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk
Keivan
fonte
4

Exclua o local.propertiesda pasta android no seu projeto de reação e tente.

Eu fiz isso e consegui.

Zaid Qureshi
fonte
3

Copie o outro projeto android local.properties do seu sistema e cole na pasta android do projeto React-native que funcionará.

Rathore
fonte
Parabéns para uma solução astuto e à prova de bala;)
Hack06
3

Isso funcionou para mim.

Estou usando o React Native de Stephen Grider na Udemy e um dos alunos postou isso na Aula 50. Colei literalmente na linha de comando (sem '$', é claro).

$ export "ANDROID_HOME=/usr/local/opt/android-sdk" >~/.bash_profile
Utah
fonte
Não faça isso. ele irá resultar no erro> The SDK directory '/usr/local/opt/android-sdk' does not exist.
thexande
3

A melhor solução que posso encontrar é a seguinte:

  1. Faça o download do Android Studio e do SDK de sua escolha (mesmo que você ache que não precisa, confie em mim para liberar o arquivo apk e algumas alterações manuais no código do Android).
  2. Arquivo> Novo> Importar, aponte para o local onde está o seu projeto android nativo de reação.
  3. Se você solicitar o download de qualquer SDK específico, faça o download do mesmo. Pode solicitar que você atualize o gradle etc ... Continue atualizando sempre que necessário.
  4. Se você já possui um SDK do Android e conhece a versão, basta fazer a correspondência dessa versão em build.gradle do seu projeto do Android.

É assim que o arquivo gradle se parecerá:

insira a descrição da imagem aqui

Se tudo correu bem com a configuração da sua máquina e você pode compilar o projeto usando o Android Studio, nada o impedirá de criar seu aplicativo por meio do comando react-native cli build android.

Com essa abordagem, você não apenas resolverá o problema do SDK, como também resolverá muitos problemas relacionados à configuração da sua máquina para o desenvolvimento do Android. A importação encontrará automaticamente o local do SDK e criará local.properties. Portanto, você não precisa se preocupar com intervenções manuais.

codebased
fonte
2

Para usuários do Linux

Seu aplicativo não está recebendo o caminho do android-sdk, portanto, se você estiver usando o linux (ubuntu), precisará adicionar um arquivo chamado "local.properties" e salvá-lo na pasta android, criada dentro da pasta do aplicativo .

Você precisa adicionar a linha abaixo no arquivo local.properties, que é o caminho do seu android-sdk, dentro do sistema dentro do sistema para executar o aplicativo.

sdk.dir=/opt/android-sdk/

salve e execute novamente o comando react-native run-android

OU

você pode abrir o terminal, digite

sudo nano ~ / .bashrc

e cole o caminho abaixo no final do arquivo

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

e reinicie o computador e execute novamente react-native run-android depois disso.

Nota: - Se você colocar o caminho definido no arquivo .bashrc, nem precisará criar o arquivo local.properties.

Yash Vekaria
fonte
Essa não deve ser uma solução codificada, mas depende de onde o Android Studio SDK está instalado. No meu caso é sdk.dir = "pathWhereAndroidSDKisbeeninstalled / Android / SDK"
Carmine Tambascia
2

Se você criar e android studioprojetar, poderá ver que um local.propertiesarquivo é criado dentro do diretório raiz do projeto. Quando você cria um projeto nativo de reação, ele não cria esse arquivo para você. Então você tem que criá-lo manualmente. E tem que adicionar skd dir a ele. Então, crie um novo arquivo dentro da pasta android (na raiz). e coloque o seu caminho sdk como este sdk.dir=D\:\\Android\\SDK\\android_sdk_studio . Lembre-se: remova single \ com double. Assim como acima.

Nouman Ghaffar
fonte
2

Existem 2 maneiras de resolver esse problema:

  1. Simples, execute seu projeto Android nativo react no Android studio, ele gerará automaticamente o arquivo local.properties no projeto Android nativo react .

  2. uma. Vá para React-native Project -> Android
    b. Crie um arquivo local.properties
    c. Abra o arquivo
    d. Cole seu caminho do SDK do Android como abaixo

Dinamarquês Hassan
fonte
1

Verifique se você tem o emulador adequado e a versão Android instalada. Isso resolveu o problema para mim.

Arel
fonte
1

No diretório do projeto, há uma pasta chamada "android" e, dentro dela, o arquivo local.properties. Exclua o arquivo e a compilação deve ser executada com sucesso

Peter Hassaballah
fonte
0

Existem dois arquivos gradle, altere o arquivo dentro do seu C: \ myapp \ android \ build.gradle e não no diretório pai myapp.

Substitua 23.0.1 pela sua versão do Android Build Tool instalada no meu caso 25.0.0

Execute react-native run-android para ver seu aplicativo no emulador.

P.Ranjan
fonte
0

Basta abrir a pasta android no projeto do Android Studio . O estúdio Android cria o arquivo necessário (local.properties) e baixa a versão do SDK para executar o Android necessário.

Rasoul Miri
fonte
0

Estou no Windows e tive que modificar o caminho sdk, independentemente de tê-lo no PATH env. variável

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

Este arquivo foi alterado:

MyProject\android\local.properties
NK_Mimrot
fonte
0

O problema é que você configurou incorretamente as variáveis ​​de ambiente. Você precisa usar (no Windows) o SDK de:C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

Para mais informações: https://facebook.github.io/react-native/docs/getting-started

Selecione: Reagir o Início rápido da CLI nativa na seção do ambiente de desenvolvimento Android no ponto 3. Configure o ANDROID_HOME variável de ambiente

Se você fizer o que está fazendo agora, deverá configurar cada projeto para usar suas variáveis ​​de ambiente e se o projeto estiver entre várias pessoas com seus equipamentos, poderá causar um problema. Se você fizer como eu lhe disse, não precisará configurar nenhum projeto.

IvanAllue
fonte
0

Se você possui o Android Studio instalado, basta abrir o Project/androidAndroid Studio, que será notificado, para que você altere o caminho do local do SDK no projeto.

Biscoito da sorte
fonte
-2

Copie o outro projeto android local.properties do seu sistema e cole na pasta android do projeto React-native que funcionará.

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