네이티브 안드로이드 빌드에 실패했습니다. 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

USERNAMEmacOS 사용자 이름은 어디에 있습니까


* 잘못된 것 : 프로젝트 ': app'를 구성하는 중에 문제가 발생했습니다. > SDK 디렉토리 '/ usr / local / android-sdk'가 없습니다. 그러나 실제로 내 SDK는이 경로에 존재합니다
Pyae Sone Nyein

3
이 문제를 해결 했습니까? 나는 또한 지금 이것에 직면하고있다.
Gasper Kolenc

8
Android Studio에서 실행 하여이 문제를 해결할 수있었습니다. 일단 당신이 그것을 명령 줄에서 작동합니다.
Gant Laborde '

예. local.properties를 작성하면 문제가 해결되었습니다. 이상하지만 작동합니다.
Sanj

113
창문이있는 경우sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
Razze

422
  1. React-native Project-> Android로 이동하십시오.
  2. 파일 만들기 local.properties
  3. 파일을여십시오
  4. 아래와 같이 Android SDK 경로를 붙여 넣으십시오.

    • Windows에서 sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
    • macOS에서 sdk.dir = /Users/USERNAME/Library/Android/sdk
    • 리눅스에서 sdk.dir = /home/USERNAME/Android/Sdk

USERNAME사용자 이름으로 교체

이제 react-native run-android터미널에서를 실행하십시오 .


4
SDK를 외장 드라이브로 옮겼습니다. macOS Sierra를 사용하여 작동합니다.
ruelluna

4
리눅스에서sdk.dir=/home/USERNAME/Android/Sdk
ebin

sdk.dir = / home / USERNAME / Android / Sdk-> Linux에서 작동하지만 Linux 용 Android Studio가 있고 작동해야합니다 (gradle running)
MarcoZen

오류 표시 * 문제점 : ': app'프로젝트를 구성하는 중에 문제가 발생했습니다. > SDK 디렉토리 '/ Users / chandni sharma / Library / Android / sdk'가 없습니다.
Chandni

2
@Chandni 안드로이드 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다른 답변에 명시된대로 경로를 만들고 배치하여 문제를 해결했습니다.
Hesam

3
Mac이 있고 env var ANDROID_HOME이 도움이되지 않았습니다. local.properties그러나했다.
Henrik

60

열고 ~/.bash_profile추가하십시오 :

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

여기에 이미지 설명을 입력하십시오


10
공장. 터미널을 다시 시작하거나 source ~/.bash_profile새 내보내기 행을 적용하려면 입력 해야합니다.
랩터

어떤 몸이 그 때 그것을 찾을 수없는 첫 번째 타이머에 대한 하나를 만들 bash_profile을 찾을 수없는 경우 추가하십시오 수 (그래서 내가 할 : p)를
snehal 아그라 왈

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설치 안드로이드 SDK를 다음 지시 사항 .


6
가장 좋은 대답은 local.properties를 변경할 필요가 없습니다. 나를 위해 완벽하게 작동
mike_dz

왜 나쁜 연습입니까? 이 지역화 변경을 것 같아로 진정 호기심 시스템 경로에 변화를 만드는 것보다 훨씬 안전합니다
로비 Milejczak

8
이 코드가 소스 컨트롤에 체크인되면, 그 코드로 빌드하려는 다음 사람이이 페이지를 보게됩니다.
Dave Welling

31

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


1
글로벌 시스템 파일을 변경하지 않는 가장 안전한 방법입니다. 그리고 해당 유형의 컴퓨터에 대한 관리자 액세스 권한이없는 사용자를 위해.
GravyPlaya

23

Windows에있는 경우 android/local.properties파일 에서 백 슬래시와 콜론을 이스케이프 (백래시 추가) 하십시오. 거기에 없다면 그것을 만드십시오.

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

2
Windows의 경우 Android SDK는 C : \ Program Files \ Android \ android-sdk
Stephane

16

MAC / Unix에서 React Native0.58을 시작하도록 업데이트 된 단계

  • 터미널에서 bash_profile 열기

나노 ~ / .bash_profile

ANDROID_HOME = $ HOME / 라이브러리 / Android / sdk 내보내기

내보내기 PATH = $ PATH : $ ANDROID_HOME / 에뮬레이터

내보내기 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


내 생명을 구했습니다 :)
marco burrometo

때때로 당신은 터미널 닫고 다시 열 필요
Oluwatobi 사무엘 Omisakin

14

Windows 사용자의 경우

간단한 해결책 중 하나는 SDK 경로를 환경 변수 목록으로 설정하는 것입니다.

  1. 환경 변수로 향하십시오. (PC> 속성)
  2. 새로운 시스템 변수 생성
  3. 변수 이름ANDROID_HOME으로 설정하십시오.
  4. 변수 값 을 Android SDK 위치로 설정하십시오.
  5. 확인을 누릅니다 (3 개의 대화 상자에 3 번)

노트 :

Android SDK는 일반적으로 다음 위치에 있습니다.

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

터미널은 기존의 모든 환경 변수를 보유하므로 현재 터미널닫아야합니다 .


그게 다야. local.properties를 편집 할 필요가 없습니다. 감사합니다.
Rhadamez Gindri Hercilio

1
매력처럼 작동합니다 😊. 고마워요!
kapil pandey

컴퓨터를 재부팅해야 함
mtoninelli

1
나는 "현재 터미널을 닫으십시오"라는 omg를 놓 쳤고 거의 포기하고 다시 시도했습니다. 이것은 효과가 있었다!
Michimcchicken

11

Linux 배포판에서 SDK 경로 오류 수정


프로젝트가 제공된 경로를 통해 프로젝트 설정에서 설정된 SDK를 찾지 못하므로 프로젝트가 올바른 방향을 가리켜 야하며이를 수행하기위한 몇 가지 옵션이 있지만 올바른 SDK 폴더를 먼저 찾아 보도록하겠습니다.


SDK 찾기


패키지 관리자에서


당신이 사용하는 경우 패키지 기반 JRE를 설치 같은 자바 8 JRE 데비안 기반 배포에서 사용자 정의 PPA를 통해, 또는 사용 오픈 JDK를 , 디렉토리는 가장 가능성이있을 것이다 는 / usr / lib 디렉토리 / JVM을 / 자바-8 신탁 (또는 선택한 버전). 이 경로는 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 Install 명령어는 폴더 위치를 사용자의 손에 맡깁니다.


안드로이드 스튜디오 2.2


마지막으로 Android Studio를 사용하는 경우 SDK는 Studio의 SDK 관리자를 통해 다운로드 한 SDK 파일을 배치하도록 설정 한 위치에 배치됩니다. 로 이동하여 파일> 설정> 모양 및 행동> 시스템 설정> 안드로이드 SDK , 당신은 변화에 대한 옵션을 상단에있는 SDK 위치 설정하고있는 폴더의 기본 찾을 수 있습니다 ~ / 안드로이드 / SDK를 .

안드로이드 스튜디오 SDK 경로

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

이것이 문제를 해결하는 가장 쉬운 방법이지만 특히 여러 프로젝트로 작업하는 경우에는 최선의 방법이 아닙니다. 모든 프로젝트에 대해 모든 프로젝트에 대해이 파일을 작성해야하며 폴더가 변경되면 각 프로젝트의 local.properties에 대해이 파일을 변경하도록 계획해야합니다.

파일이 저장되면 react-native run-android 명령을 다시 실행하십시오 .


옵션 2 : 환경 변수가있는 설정 폴더


다른 옵션은 SDK 폴더를 React-Native가 기본적으로 찾는 로컬 환경 변수로 설정하는 것입니다. 이를 위해 ANDROID_HOME 경로를 추가합니다. 보너스로 우리는 또한 같은 장소에 안드로이드 도구를 추가 할 수 있습니다. 마지막으로로드되는 홈 디렉토리의 .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 폴더가 올바르게 표시되면 축하합니다! react-native 명령을 다시 실행하고 앱 빌드 프로세스가 계속 진행되는 것을보십시오.


여전히 문제가있는 경우


어떤 이유로 " > / sdk / folder에서 해시 문자열이 'android-23'인 대상을 찾을 수 없습니다."라는 오류 가 표시되면 프로젝트의 빌드 버전과 설치된 SDK 버전이 일치하는지 확인해야합니다. -Native 기본값은 23.0.1입니다) Project_Folder / android / app / build.gradle 에서 기본 버전을 찾은 다음 buildToolsVersion 을 검색 할 수 있습니다 할 수 있습니다. 물론이 파일에서 버전을 변경하거나 Android Studio에서 File 로 이동하십시오. > 프로젝트 SDK 를 변경하기위한 프로젝트 구조 . 수행중인 작업을 절대적으로 알지 않는 한이 버전을 변경하지 않는 것이 좋습니다. 그렇지 않으면 프로젝트에서 찾고있는 SDK 버전을 설치하십시오.


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에서 Android Studio와 별도로 SDK를 가져와야 하는 경로는 Android Studio에서 작동하지만 React Native에서는 파일 이름을 만들어야합니다.local.properties .

예를 들어 여관에서 ~/AwesomeProject/android다음 줄을 삽입하십시오.
sdk.dir=/path/to/sdk/in/your/computer


4

local.properties파일 에서 확인하십시오 .

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

형식이 올바른지 아닌지


4

Ubuntu를 사용하는 경우 반응 네이티브 프로젝트의 android 디렉토리로 이동하여 다음과 같이 파일 local.properties을 만들고 android sdk 경로를 추가하십시오.

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

4

반응 프로젝트 local.propertiesandroid 폴더에서를 삭제 하고 사용해보십시오.

나는 이것을하고 성공했습니다.


3

시스템의 다른 안드로이드 프로젝트 local.properties를 복사하고 반응하는 네이티브 프로젝트의 android 폴더에 붙여 넣으십시오.


교묘하고 방탄 솔루션에 대한 명성;)
Hack06

3

이것은 나를 위해 일했다.

Udemy에서 Stephen Grider의 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. 파일> 새로 만들기> 가져 오기에서 반응하는 기본 안드로이드 프로젝트가있는 위치를 가리 킵니다.
  3. 특정 SDK를 다운로드하라는 메시지가 표시되면 동일한 SDK를 다운로드하십시오. gradle 등을 업데이트하도록 요청할 수 있습니다 ... 필요한 경우 업데이트를 계속하십시오.
  4. 기존 Android SDK가 있고 버전을 알고 있으면 Android 프로젝트의 build.gradle 아래에서 해당 버전을 일치시키기 만하면됩니다.

이것이 gradle 파일의 모습입니다 :

여기에 이미지 설명을 입력하십시오

모든 것이 머신 설정과 잘 작동하고 Android Studio를 사용하여 프로젝트를 컴파일 할 수 있다면 react-native cli build android 명령을 통해 앱을 빌드하는 것을 막을 수있는 것은 없습니다.

이 접근 방식을 사용하면 SDK 문제를 해결할뿐만 아니라 Android 개발을위한 머신 설정과 관련된 많은 문제도 해결할 수 있습니다. 가져 오기는 자동으로 SDK 위치를 찾고 local.properties를 작성합니다. 따라서 수동 개입에 대해 걱정할 필요가 없습니다.


2

Linux 사용자의 경우

앱이 android-sdk의 경로를 얻지 못하므로 linux (ubuntu)를 사용하는 경우 "local.properties"라는 파일을 추가하고 app 폴더 안에 생성 된 android 폴더에 저장해야합니다. .

앱을 실행하려면 android.sdk의 경로 인 local.properties 파일 안에 아래 행을 추가해야합니다.

sdk.dir=/opt/android-sdk/

react-native run-android 명령을 저장하고 다시 실행하십시오.

또는

당신은 터미널을 열고 입력 할 수 있습니다

sudo nano ~ / .bashrc

파일 끝에 아래 경로를 붙여 넣습니다.

ANDROID_HOME = "/ opt / android-sdk /"내보내기

하고 컴퓨터를 다시 시작 하고 다시 실행 반응 네이티브 실행 안드로이드 그 이후.

참고 :-.bashrc 파일에 set path를 넣으면 local.properties 파일을 만들 필요조차 없습니다.


이것은 하드 코딩 된 솔루션이 아니어야하지만 Android Studio SDK가 설치된 위치에 따라 다릅니다. 내 경우에는 sdk.dir = "pathWhereAndroidSDKisbeeninstalled / 안드로이드 / SDK는"
카르 민 Tambascia

2

생성하고 android studio프로젝트하면 local.properties프로젝트 루트 디렉토리 내에 파일이 생성 된 것을 볼 수 있습니다 . 반응 네이티브 프로젝트를 만들면 해당 파일이 만들어지지 않습니다. 따라서 수동으로 만들어야합니다. 그리고 그것에 skd 디렉토리를 추가해야합니다. 따라서 안드로이드 폴더 안에 새로운 파일을 만드십시오 (root에서). sdk 경로를 다음과 같이 입력 sdk.dir=D\:\\Android\\SDK\\android_sdk_studio . 하십시오. 기억하십시오 : single \을 double로 제거하십시오. 위와 같이.


2

이 문제를 해결하는 두 가지 방법이 있습니다.

  1. android studio에서 반응 기본 Android 프로젝트를 간단하게 실행하면 반응 기본 Android 프로젝트에서 local.properties 파일 이 자동으로 생성됩니다 .

  2. ㅏ. React-native Project-> Android로 이동하십시오
    . b. local.properties 파일을 작성하십시오
    . c. 파일을 엽니 다
    . d. 아래와 같이 Android SDK 경로를 붙여 넣습니다.


1

적절한 에뮬레이터와 Android 버전이 설치되어 있는지 확인하십시오. 그것은 나를 위해 문제를 해결했습니다.


1

프로젝트 디렉토리에는 "android"라는 폴더가 있고 그 안에 local.properties 파일이 있습니다. 파일을 삭제하면 빌드가 성공적으로 실행됩니다



0

두 개의 gradle 파일이 있습니다 .C : \ myapp \ android \ build.gradle 에서 변경하십시오. . 부모 디렉토리 myapp가 아닌 .

필자의 경우 25.0.0에 설치된 Android 빌드 도구 버전으로 23.0.1을 교체하십시오.

실행 반응 네이티브 실행 안드로이드 에뮬레이터에서 응용 프로그램을 볼 수 있습니다.


0

Android Studio의 프로젝트에서 android 폴더를 엽니 다 . 안드로이드 스튜디오는 필요한 파일 (local.properties)을 생성하고 필요한 안드로이드 실행을 위해 SDK 버전을 다운로드합니다.


0

Windows에 있고 PATH env에 관계없이 SDK 경로를 수정해야했습니다. 변하기 쉬운

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

이 파일을 변경했습니다 :

MyProject\android\local.properties

0

문제는 환경 변수를 잘못 구성했다는 것입니다. 다음과 같은 SDK를 사용해야합니다 (Windows).C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

자세한 정보 : https://facebook.github.io/react-native/docs/getting-started

포인트 3의 Android 개발 환경 섹션에서 기본 CLI 빠른 시작을 선택하십시오. ANDROID_HOME환경 변수 구성

지금 당장 그대로 수행하면 환경 변수를 사용하도록 각 프로젝트를 구성해야하며 프로젝트가 장비를 가진 여러 사람 사이에 있으면 문제가 발생할 수 있습니다. 내가 말했듯이 그렇게하면 프로젝트를 구성 할 필요가 없습니다.


0

android studio가 설치되어 있으면 Project/androidusing Android Studio 를 열면 프로젝트에서 SDK 위치 경로를 전환하라는 메시지가 표시됩니다.


-2

시스템의 다른 안드로이드 프로젝트 local.properties를 복사하고 반응하는 네이티브 프로젝트의 android 폴더에 붙여 넣으십시오.

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

C \ : \\ Users \\ champika \\ AppData \\ Local \\ Android \\
Sdk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.