Реагировать Родная сборка Android не удалась. Местоположение SDK не найдено

473

У меня ошибка при запуске 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.
Пья Соне Найен
источник

Ответы:

843
  • Перейдите в android/каталог своего реактивного проекта
  • Создайте файл local.propertiesс этой строкой:
sdk.dir = /Users/USERNAME/Library/Android/sdk

Где USERNAMEваше имя пользователя macOS

грабеж
источник
* Что пошло не так: возникла проблема при настройке проекта «: приложение». > Каталог SDK '/ usr / local / android-sdk' не существует. Но на самом деле мой SDK существует на этом пути
Pyae Sone Nyein
3
Ребята, вы решили эту проблему? Я тоже сталкиваюсь с этим прямо сейчас.
Гаспер Коленц
8
Я смог это исправить, запустив Android Studio. Как только вы это сделали, все работает из командной строки.
Гант Лаборде
Да, создание local.properties решило мою проблему. Странно но работает.
Сандж
113
Если вы на окнахsdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
Razze
423
  1. Зайдите в свой React-native Project -> Android
  2. Создать файл local.properties
  3. Открыть файл
  4. вставьте свой путь Android SDK, как показано ниже

    • в винде sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
    • в macOS sdk.dir = /Users/USERNAME/Library/Android/sdk
    • в Linux sdk.dir = /home/USERNAME/Android/Sdk

Замените USERNAMEна ваше имя пользователя

Теперь запустите react-native run-androidв своем терминале.

Навин Т.П.
источник
4
Я переместил свой SDK на внешний диск. Работает для меня, используя macOS Sierra.
ruelluna
4
в Linuxsdk.dir=/home/USERNAME/Android/Sdk
Ebin
sdk.dir = / home / ИМЯ ПОЛЬЗОВАТЕЛЯ / Android / Sdk -> работает для linux, но Android Studio для Linux должна присутствовать и работать (запущена)
MarcoZen
Отображение ошибки * Что пошло не так: возникла проблема при настройке проекта ': app'. > Каталог SDK '/ Users / Chandni Sharma / Библиотека / Android / SDK' не существует.
Чандни
2
@Chandni Убедитесь, что у вас установлен Android SDK
a_rahmanshah
116

Вы можете попробовать добавить ANDROID_PATH

export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Ниша
источник
10
У меня уже есть ANDROID_PATHв среде (Ubuntu, файл .bashrc). Однако по некоторым причинам я все еще получаю проблему. Я исправил это, создав local.propertiesи поместив путь, как указано в других ответах.
Хесам
3
У меня есть mac и env var ANDROID_HOME не помогло. local.propertiesсделал, однако.
Хенрик
60

Откройте ~/.bash_profileи добавьте:

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

введите описание изображения здесь

notdrone
источник
10
Работает. Не забудьте перезапустить Терминал или наберите, source ~/.bash_profileчтобы новые строки экспорта вступили в силу.
Raptor
Можете ли вы добавить, если какое-либо тело не может найти bash_profile, а затем создайте его, так как в первый раз они не смогут его найти (Я тоже: p)
snehal agrawal
44

НЕ ОБНОВЛЯЙТЕ local.properties , это определенно плохая практика.

Вот как я это исправил. Добавьте следующее в ~/.bash_profileили ~/.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

Примечание: я использовал brew caskдля установки Android SDK, следуя этим инструкциям .

locropulenton
источник
6
Это лучший ответ, не нужно менять local.properties. Прекрасно работает для меня
mike_dz
почему это плохая практика? действительно любопытно, поскольку кажется, что сделать локализованные изменения гораздо безопаснее, чем внести изменения в системный путь
Робби Милейчак,
8
Потому что, если этот код будет проверен в системе контроля версий, следующий человек, который попытается создать его, в конечном итоге заглянет на эту страницу.
Дейв Веллинг
31

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

snowcamel
источник
1
Это самый безопасный способ, поскольку вы не меняете глобальные системные файлы. И для тех, у кого нет такого типа доступа администратора к своей машине.
GravyPlaya
23

Если вы находитесь в Windows, экранируйте (добавьте обратную косую черту) обратную косую черту и двоеточие в android/local.propertiesфайле. Если его нет, тогда создайте его

sdk.dir = C\:\\Android\\sdk
Саджад Ашраф
источник
2
Для Windows Android SDK находится в папке C: \ Program Files \ Android \ android-sdk
Стефан
16

Обновлены шаги для React Native0.58, чтобы начать работу на MAC / Unix

  • Откройте bash_profile в терминале

nano ~ / .bash_profile

export ANDROID_HOME = $ HOME / Библиотека / Android / sdk

экспорт PATH = $ PATH: $ ANDROID_HOME / emulator

экспорт PATH = $ PATH: $ ANDROID_HOME / tools

экспорт PATH = $ PATH: $ ANDROID_HOME / tools / bin

экспорт PATH = $ PATH: $ ANDROID_HOME / platform-tools

Control+S to save
Control+X to exit
Y to save changes
  • Обновление изменений в терминале

source ~/.bash_profile

  • Проверить путь:

echo $PATH

  • Подтвердите, если все в порядке:

adb devices

Хите саху
источник
Спасли
Иногда вам нужно закрыть и снова открыть свой терминал
Олуватоби Сэмюэль Омисакин
14

Для пользователей Windows

Одним из простых решений является установка пути SDK к списку переменных среды.

  1. Перейдите к переменным Enviromnent. (Ваш ПК> Свойства)
  2. Создать новые системные переменные
  3. Установите имя переменной в ANDROID_HOME
  4. Установите значение переменной для вашего Android Sdk Location
  5. Нажмите ОК (3 раза для 3 диалоговых окон)

Замечания:

Ваш Android Sdk обычно находится в

C: \ Users \ имя_пользователя \ AppData \ Local \ Android \ Sdk

Обязательно закройте ваш текущий терминал, потому что ваш терминал содержит все ваши существующие переменные среды.

Ozesh
источник
Вот и все. Не нужно редактировать local.properties, спасибо.
Rhadamez Gindri Hercilio
1
Работает как шарм 😊. Большое спасибо!
Капил Пандей
Не забудьте перезагрузить машину
Mtoninelli
1
я пропустил это "закрыть свой текущий терминал", и я попробовал, я почти сдался, и я снова прочитал хахаха, спасибо! это сработало!
Michimcchicken
11

Исправление ошибок пути SDK в дистрибутивах Linux


Ваш проект не находит SDK, заданный в настройках проекта, по указанному пути, поэтому проект должен указывать в правильном направлении, и у вас есть несколько вариантов для этого, но давайте начнем с поиска правильной папки SDK.


Найти свой SDK


От менеджера пакетов


Если вы используете установку JRE на основе пакетов, например Java 8 JRE через пользовательский PPA в дистрибутиве на основе Debian, или используете OpenJDK , каталог, скорее всего, будет / usr / lib / jvm / java-8-oracle (или какую бы версию вы ни выбрали). Этот путь можно найти в переменной среды JAVA_HOME :

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

Ручная загрузка


Если вы установили через загрузку Java JRE / SDK , она будет находиться там, где вы поместили папку, например / home / username /jdk-8u121_1.8.0 (или что-то подобное).

Сценарии установки могут даже добавить SDK в / opt / java-8-oracle , но на момент написания этой инструкции инструкции по установке Java оставляют расположение папок в ваших руках.


Android Studio 2.2


Наконец, если вы используете Android Studio, SDK размещается там, где вы установили его для размещения файлов SDK, загруженных через Studio SDK Manager. Перейдя в меню «Файл»> «Настройки»> «Внешний вид и поведение»> «Системные настройки»> «Android SDK» , вы можете найти настройки местоположения SDK вверху с возможностью изменения, а папкой по умолчанию является ~ / Android / Sdk .

Android Studio SDK Path

Установка пути SDK

Теперь, когда мы знаем, где находится SDK, пришло время дать знать об этом.


Вариант 1: установить с помощью local.properties


Этот метод очень прост, и все, что нужно, это создать файл local.properties в следующей папке, где Project_Folder является базой вашего приложения React-Native:

Project_Folder / Android / App

В ваших local.properties вы хотите установить переменную sdk.dir в путь к вашей папке SDK:

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

Хотя это самый простой способ устранить проблему, он не самый лучший, особенно если вы работаете с несколькими проектами. Для каждого проекта вам нужно будет создать этот файл для каждого проекта, и если папка изменится, планируйте изменить этот файл для каждого локального.properties каждого проекта.

Как только файл будет сохранен, снова запустите команду реагировать на запуск run-android .


Вариант 2. Папки настроек с переменными среды


Другой вариант - установить для папок SDK локальные переменные среды, которые React-Native ищет по умолчанию. Для этого мы добавим путь ANDROID_HOME. В качестве бонуса мы также можем добавить наши инструменты для Android в том же месте. Нам нужно добавить это скорее к файлам .bash_profile или .profile в нашем домашнем каталоге, которые загружаются последними, чтобы мы могли быть уверены, что ничто другое не переопределяет настройки, которые мы делаем. Так как они находятся в вашем домашнем каталоге, нет необходимости редактировать с повышенными привилегиями.

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

В файле добавьте следующие строки, заменив папку SDK на ту, что вы нашли выше. Я буду использовать папку Android Studio в качестве примера:

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

Сохраните файл, затем примените настройки профиля:

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

Если папка Sdk отображается правильно, поздравляем! Перезапустите вашу команду Reaction-native и наблюдайте, как процесс сборки приложения продолжается.


Если у вас все еще есть проблемы


Если по какой-либо причине вы получаете сообщение об ошибке " > не удалось найти цель с хэш-строкой 'android-23' в папке: ваша / sdk / , вам необходимо убедиться, что версия сборки проекта и версия установленного SDK совпадают (React -Нативный по умолчанию - 23.0.1.) Вы можете найти версию по умолчанию в Project_Folder / android / app / build.gradle , а затем выполнить поиск buildToolsVersion . Конечно, вы можете изменить версию из этого файла или в Android Studio перейти в Файл > Структура проекта для изменения Project SDK . Я бы не предлагал менять эту версию, если вы абсолютно не знаете, что делаете, в противном случае установите версию SDK, которую ищет проект.

DBrown
источник
7

Вы должны написать правильный полный путь. Не используйте '~ / 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

В Ubuntu, где вы должны получить SDK отдельно от Android Studio, странный путь будет работать с Android Studio, но с React Native вам нужно будет создать имя файла local.properties.

Например, Inn ~/AwesomeProject/androidи вставьте эту строку:
sdk.dir=/path/to/sdk/in/your/computer

connelblaze
источник
4

Проверьте в вашем local.propertiesфайле:

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

если формат правильный или нет

Makvin
источник
4

Если вы используете Ubuntu, просто перейдите в директорию android вашего вашего реактивного проекта и создайте файл с именем local.propertiesи добавьте в него путь Android SDK следующим образом:

sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk
Keivan
источник
4

Удалите local.propertiesиз папки android в своем реактивном проекте и попробуйте.

Я сделал это и преуспел.

Зайд Куреши
источник
3

Скопируйте другой android-проект вашей системы local.properties и вставьте в папку android проекта React-native, он будет работать.

Rathore
источник
Слава за хитрое и пуленепробиваемое решение;)
Hack06
3

Это сработало для меня.

Я беру React Native Стивена Гридера с Удеми, и один из студентов опубликовал это в лекции 50. Дословно вставил в командную строку (конечно, без '$').

$ export "ANDROID_HOME=/usr/local/opt/android-sdk" >~/.bash_profile
Юта
источник
Не делай этого. это приведет к ошибке> The SDK directory '/usr/local/opt/android-sdk' does not exist.
thexande
3

Лучшее решение, которое я могу найти, заключается в следующем:

  1. Загрузите Android Studio и SDK на ваш выбор (даже если вы считаете, что вам это не нужно, поверьте мне, он понадобится вам для выпуска файла apk и внесения некоторых изменений в код Android).
  2. Файл> Создать> Импорт, укажите место, где находится ваш реагирующий нативный проект Android.
  3. Если он попросит вас загрузить какой-либо конкретный SDK, пожалуйста, скачайте его. Он может попросить вас обновить Gradle и т. Д. Пожалуйста, продолжайте обновлять при необходимости.
  4. Если у вас есть Android SDK и вы знаете версию, то все, что вам нужно сделать, это сопоставить эту версию в build.gradle вашего проекта Android.

Вот как будет выглядеть файл Gradle:

введите описание изображения здесь

Если с настройкой вашей машины все прошло хорошо, и вы можете скомпилировать проект с помощью Android Studio, то ничто не помешает вам создать приложение с помощью команды реагирования-родной команды cli build android.

При таком подходе вы не только решите проблему SDK, но и решите многие проблемы, связанные с настройкой вашего компьютера для разработки под Android. Импорт автоматически найдет местоположение SDK и создаст local.properties. Следовательно, вам не нужно беспокоиться о ручном вмешательстве.

codebased
источник
2

Для пользователей Linux

Ваше приложение не получает путь к android-sdk, поэтому, если вы используете linux (ubuntu), вам нужно добавить файл с именем «local.properties» и сохранить его в папке android, которая создается внутри папки вашего приложения. ,

Вам нужно добавить строку ниже в файле local.properties, который является путем вашего android-sdk, который находится внутри вашей системы внутри системы, чтобы запустить приложение.

sdk.dir=/opt/android-sdk/

сохранить и снова запустить команду реагировать-родной запустить-Android

ИЛИ

Вы можете открыть терминал, наберите

sudo nano ~ / .bashrc

и вставьте следующий путь в конец файла

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

и перезагрузите компьютер и снова запустите реакцию-родной запустить-Android после этого.

Примечание: - Если вы поместите заданный путь в файл .bashrc, вам даже не нужно создавать файл local.properties.

Яш Векария
источник
Это не должно быть жестко закодированное решение, оно зависит от того, где установлен Android Studio SDK. В моем случае это sdk.dir = "pathWhereAndroidSDKisbeeninstalled / Android / Sdk"
Кармин Tambascia
2

Если вы создаете и android studioпроектируете, вы можете видеть, что local.propertiesфайл создается внутри корневого каталога вашего проекта. Когда вы создаете реактивный собственный проект, он не создает этот файл для вас. Таким образом, вы должны создать его вручную. И нужно добавить к нему skd dir. Поэтому создайте новый файл в папке Android (в корне). и поместите свой путь SDK, как это sdk.dir=D\:\\Android\\SDK\\android_sdk_studio . Помните: удалить одиночный \ с двойным. Так же, как и выше.

Нуман Гаффар
источник
2

Есть 2 способа решить эту проблему:

  1. Просто запустите свой собственный проект Android для Android в студии Android, и он автоматически сгенерирует ваш файл local.properties в проекте Android для Android.

  2. а. Перейдите в React-native Project -> Android
    b. Создать файл local.properties
    c. Откройте файл
    d. Вставьте путь к Android SDK, как показано ниже

Датский хасан
источник
1

Убедитесь, что у вас установлен правильный эмулятор и установлена ​​версия Android. Это решило проблему для меня.

Арел
источник
1

В вашем каталоге проектов есть папка с именем android, а внутри нее - файл local.properties. Удалите файл, и сборка должна пройти успешно

Питер Хассабалла
источник
1

Если файл local.properties отсутствует, просто создайте его в папке «project / android» с помощью «sdk.dir = / Users / apple / Library / Android / sdk» и убедитесь, что ваш SDK находится в этом месте.

для создания файла с пользовательскими расширениями на Mac обратитесь по следующей ссылке

Как сохранить файл TextEdit (mac) с пользовательским расширением (.sas)?

Тиян Ян
источник
0

Есть два файла Gradle, замените один в вашем C: \ myapp \ android \ build.gradle, а не в родительском каталоге myapp.

Замените 23.0.1 на вашу версию Android Build Tool, установленную в моем случае 25.0.0

Запустите реакцию-родной запустить андроид, чтобы увидеть свое приложение в эмуляторе.

P.Ranjan
источник
0

Просто откройте папку Android в проекте Android Studio . Студия Android создает необходимый файл (local.properties) и загружает версию SDK для запуска Android.

Расул Мири
источник
0

Я на Windows, и я должен был изменить путь SDK, независимо от его наличия в PATH env. переменная

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

Изменен этот файл:

MyProject\android\local.properties
NK_Mimrot
источник
0

Проблема в том, что вы неправильно настроили переменные среды. Вы должны использовать (в Windows) SDK:C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

За дополнительной информацией: https://facebook.github.io/react-native/docs/getting-started

Выберите: Реагировать на быстрый запуск собственного интерфейса командной строки в разделе среды разработки Android в пункте 3. Настройте ANDROID_HOMEпеременную среды

Если вы делаете это так, как сейчас, вы должны сконфигурировать каждый проект для использования переменных среды, и если проект принадлежит нескольким людям со своим оборудованием, это может вызвать проблему. Если вы сделаете это, как я вам сказал, вам не нужно будет настраивать какой-либо проект.

IvanAllue
источник
0

Если у вас установлена ​​Android Studio, просто откройте с Project/androidпомощью Android Studio, и он уведомит вас о необходимости переключения пути расположения SDK в проекте.

Печенье удачи
источник
-2

Скопируйте другой android-проект вашей системы local.properties и вставьте в папку android проекта React-native, он будет работать.

sdk.dir=C\:\\Users\\paul\\AppData\\Local\\Android\\Sdk
Champika Wishwanath
источник
C \: \\ Users \\ champika \\ AppData \\ Local \\ Android \\ Sdk
champika wishwanath