Phản ứng xây dựng Android bản địa thất bại. Không tìm thấy vị trí SDK


473

Tôi gặp lỗi khi bắt đầu chạy 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.

Câu trả lời:


843
  • Chuyển đến android/thư mục của dự án gốc của bạn
  • Tạo một tệp được gọi local.propertiesvới dòng này:
sdk.dir = /Users/USERNAME/Library/Android/sdk

USERNAMETên người dùng macOS của bạn ở đâu


* Điều gì đã xảy ra: Đã xảy ra sự cố khi định cấu hình dự án ': ứng dụng'. > Thư mục SDK '/ usr / local / android-sdk' không tồn tại. Nhưng thực ra sdk của tôi tồn tại trên con đường này
Pyae Sone Nyein

3
Các bạn đã khắc phục vấn đề này? Tôi cũng đang đối mặt với điều này ngay bây giờ.
Gasper Kolenc

8
Tôi đã có thể khắc phục điều này bằng cách chạy từ Android Studio. Khi bạn đã thực hiện xong, nó hoạt động từ dòng lệnh.
Gant Laborde

Yeah tạo ra local.properies đã giải quyết vấn đề của tôi. Lạ nhưng có tác dụng.
Sanj

113
Nếu trên cửa sổ của bạnsdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
Razze

422
  1. Chuyển đến Dự án gốc React của bạn -> Android
  2. Tạo một tập tin local.properties
  3. Mở tập tin
  4. dán đường dẫn SDK Android của bạn như bên dưới

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

Thay thế USERNAMEbằng tên người dùng của bạn

Bây giờ, Chạy react-native run-androidtrong thiết bị đầu cuối của bạn.


4
Tôi đã chuyển SDK của mình sang ổ đĩa ngoài. Hoạt động với tôi bằng macOS Sierra.
ruelluna

4
trong linuxsdk.dir=/home/USERNAME/Android/Sdk
ebin

sdk.dir = / home / USERNAME / Android / Sdk -> hoạt động cho linux nhưng Android Studio cho Linux cần phải có mặt và hoạt động (chạy lớp)
MarcoZen

Hiển thị lỗi * Điều gì đã sai: Đã xảy ra sự cố khi định cấu hình dự án ': ứng dụng'. > Thư mục SDK '/ Users / chandni sharma / Library / Android / sdk' không tồn tại.
Chandni

2
@Chandni Đảm bảo bạn đã cài đặt SDK Android
a_rahmanshah

116

Bạn có thể thử thêm ANDROID_PATH

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

10
Tôi đã có ANDROID_PATHtrong môi trường (tệp Ubuntu, .bashrc). Tuy nhiên, vì một số lý do tôi vẫn nhận được vấn đề. Tôi đã sửa nó bằng cách tạo local.propertiesvà đặt đường dẫn như đã nêu trong các câu trả lời khác.
Hesam

3
Tôi có một mac và env var ANDROID_HOME không giúp được. local.propertiesđã làm, tuy nhiên.
Henrik

60

Mở ~/.bash_profilevà thêm:

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

nhập mô tả hình ảnh ở đây


10
Làm. Nhớ khởi động lại Terminal hoặc gõ source ~/.bash_profileđể làm cho các dòng xuất mới có hiệu lực.
Raptor

Bạn có thể vui lòng thêm nếu bất kỳ cơ quan nào không thể tìm thấy bash_profile sau đó tạo một cái như cho bộ tính giờ đầu tiên mà họ không thể tìm thấy (Tôi cũng vậy: p)
snehal agrawal

44

KHÔNG CẬP NHẬT local.properties , nó chắc chắn là một thực hành xấu.

Đây là cách tôi sửa nó. Thêm vào sau trong ~/.bash_profilehoặc ~/.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

Lưu ý: Tôi đã sử dụng brew caskđể cài đặt Android SDK theo các hướng dẫn sau .


6
Đó là câu trả lời tốt nhất, không cần thay đổi local.properies. Hoạt động hoàn hảo với tôi
mike_dz

Tại sao đó là thực hành xấu? Thực sự tò mò vì có vẻ như thực hiện thay đổi cục bộ sẽ an toàn hơn nhiều so với thực hiện thay đổi đường dẫn hệ thống của bạn
Robbie Milejczak

8
Bởi vì nếu mã này sẽ được kiểm tra trong kiểm soát nguồn, người tiếp theo cố gắng xây dựng với nó sẽ kết thúc việc xem trang này.
Dave Welling

31

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


1
Đây là cách an toàn nhất vì bạn không thay đổi bất kỳ tệp hệ thống toàn cầu nào. Và đối với những người không có loại quản trị viên đó truy cập vào máy của họ.
GravyPlaya

23

Nếu bạn đang thoát windows (thêm backlash vào) dấu gạch chéo ngược và dấu hai chấm trong android/local.propertiestệp. Nếu nó không ở đó thì tạo ra nó

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

2
Đối với Windows, SDK Android nằm dưới C: \ Program Files \ Android \ android-sdk
Stephane

16

Các bước được cập nhật cho React Native0.58 để bắt đầu trên MAC / Unix

  • Mở bash_profile trong thiết bị đầu cuối

nano ~ / .bash_profile

xuất ANDROID_HOME = $ HOME / Thư viện / Android / sdk

xuất PATH = $ PATH: $ ANDROID_HOME / trình giả lập

xuất PATH = $ PATH: $ ANDROID_HOME / công cụ

xuất PATH = $ PATH: $ ANDROID_HOME / tools / bin

xuất PATH = $ PATH: $ ANDROID_HOME / công cụ nền tảng

Control+S to save
Control+X to exit
Y to save changes
  • Cập nhật thay đổi trong thiết bị đầu cuối

source ~/.bash_profile

  • Đường dẫn xác thực:

echo $PATH

  • Xác nhận nếu tất cả đều ổn:

adb devices


Cứu mạng tôi :)
marco burrometo 17/10/19

Đôi khi bạn cần đóng và mở lại thiết bị đầu cuối của mình
Oluwatobi Samuel Omisakin

14

Dành cho người dùng Windows

Một giải pháp đơn giản là đặt đường dẫn SDK vào danh sách Biến môi trường.

  1. Đi qua các biến Enviromnent. (PC của bạn> Thuộc tính)
  2. Tạo các biến hệ thống mới
  3. Đặt tên biến thành ANDROID_HOME
  4. Đặt giá trị Biến cho Vị trí Sdk trên Android của bạn
  5. Nhấn OK (3 lần cho 3 hộp thoại)

Ghi chú:

Android Sdk của bạn thường nằm ở

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

Đảm bảo đóng thiết bị đầu cuối hiện tại của bạn vì thiết bị đầu cuối của bạn chứa tất cả các Biến môi trường có sẵn của bạn.


Thế là xong. Không cần chỉnh sửa local.properies, cảm ơn bạn.
Rhadamez Gindri Hercilio

1
Hoạt động như một bùa mê 😊. Cảm ơn rất nhiều!
kapil pandey

Hãy nhớ khởi động lại máy của bạn
mtoninelli

1
Tôi đã bỏ lỡ rằng "đóng thiết bị đầu cuối hiện tại của bạn" omg và tôi đã thử tôi gần như bỏ cuộc và tôi đọc lại hahaha cảm ơn! cái này hiệu quả
Michimcchicken

11

Sửa lỗi đường dẫn SDK trên bản phân phối Linux


Dự án của bạn không tìm thấy SDK được đặt trong Cài đặt dự án thông qua đường dẫn được cung cấp, vì vậy dự án cần được chỉ đúng hướng và bạn có một vài tùy chọn để thực hiện điều này, nhưng trước tiên hãy bắt đầu bằng cách tìm thư mục SDK chính xác.


Tìm SDK của bạn


Từ quản lý gói


Nếu bạn đang sử dụng một JRE gói cài đặt dựa trên như Java 8 JRE qua một phong tục PPA trong một bản phân phối Debian-based, hoặc sử dụng OpenJDK , thư mục sẽ có khả năng nhất là / usr / lib / jvm / java-8-oracle (hoặc bất cứ phiên bản nào bạn đã chọn). Bạn có thể tìm thấy đường dẫn này được đặt trong biến môi trường JAVA_HOME :

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

Tải về bằng tay


Nếu bạn đã cài đặt thông qua tải xuống Java JRE / SDK , nó sẽ ở bất cứ nơi nào bạn đặt thư mục, ví dụ: home / username /jdk-8u121_1.8.0 (hoặc một cái gì đó tương tự).

Các bản cài đặt theo kịch bản thậm chí có thể thêm SDK vào / opt / java-8-orory , nhưng khi viết bài này, các hướng dẫn Cài đặt Java để lại vị trí thư mục trong tay bạn.


Studio Android 2.2


Cuối cùng, nếu bạn đang sử dụng Android Studio, SDK được đặt ở nơi bạn đã đặt nó để đặt các tệp SDK được tải xuống thông qua Trình quản lý SDK của Studio. Bằng cách đi tới Tệp> Cài đặt> Giao diện & Hành vi> Cài đặt hệ thống> SDK Android , bạn có thể tìm thấy cài đặt vị trí SDK ở trên cùng với tùy chọn để thay đổi và thư mục mặc định là ~ / Android / Sdk .

Đường dẫn SDK Android Studio

Đặt đường dẫn SDK

Bây giờ chúng ta đã biết SDK ở đâu, đã đến lúc để phản ứng tự nhiên biết.


Tùy chọn 1: Đặt với local.properies


Phương pháp này rất đơn giản và tất cả những gì cần thiết là tạo tệp local.properations trong thư mục sau, trong đó Project_Folder là cơ sở của ứng dụng React-Native của bạn:

Project_Folder / Android / Ứng dụng

Trong local.properies của bạn, bạn muốn đặt biến sdk.dir thành đường dẫn của thư mục SDK của bạn:

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

Mặc dù đây là cách dễ nhất để khắc phục vấn đề, nhưng nó không phải là cách tốt nhất, đặc biệt nếu bạn làm việc với nhiều dự án. Đối với mỗi dự án, bạn sẽ phải tạo tệp này cho mọi dự án và nếu thư mục thay đổi kế hoạch thay đổi tệp này cho từng local.properies của dự án.

Khi tệp được lưu, hãy chạy lại lệnh run-android gốc .


Tùy chọn 2: Cài đặt các thư mục có biến môi trường


Tùy chọn khác là đặt các thư mục SDK thành các biến môi trường cục bộ mà React-Native tìm theo mặc định. Để làm như vậy, chúng tôi sẽ thêm đường dẫn ANDROID_HOME. Như một phần thưởng, chúng tôi cũng có thể thêm các công cụ Android của mình ở cùng một nơi. Chúng ta cần thêm tệp này vào các tệp .bash_profile hoặc .profile trong thư mục chính của chúng tôi, được tải sau cùng, vì vậy chúng tôi có thể đảm bảo rằng không có gì khác ghi đè lên cài đặt chúng tôi thực hiện. Vì đây là trong thư mục nhà của bạn, không cần phải chỉnh sửa với các đặc quyền leo thang.

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

Trong tệp thêm các dòng sau thay thế thư mục SDK bằng thư mục bạn tìm thấy ở trên. Tôi sẽ sử dụng thư mục Android Studio làm ví dụ:

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

Lưu tệp, sau đó áp dụng các cài đặt hồ sơ:

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

Nếu thư mục Sdk hiển thị chính xác, xin chúc mừng! Chạy lại lệnh phản ứng gốc của bạn và xem quá trình xây dựng ứng dụng tiếp tục chuyển tiếp.


Nếu bạn vẫn có vấn đề


Nếu vì lý do nào đó bạn nhận được lỗi " > không tìm thấy mục tiêu với chuỗi băm 'android-23' trong: thư mục / sdk / của bạn, bạn cần đảm bảo rằng phiên bản xây dựng của dự án và phiên bản của SDK được cài đặt phù hợp (React -Native mặc định là 23.0.1). Bạn có thể tìm phiên bản mặc định trong Project_Folder / android / app / build.gradle , sau đó tìm kiếm buildToolsVersion . Tất nhiên bạn có thể thay đổi phiên bản từ tệp này hoặc trong Android Studio đi đến Tệp > Cấu trúc dự án để thay đổi SDK dự án . Tôi sẽ không đề xuất thay đổi phiên bản này trừ khi bạn hoàn toàn biết bạn đang làm gì, nếu không thì cài đặt phiên bản SDK mà dự án đang tìm kiếm.


7

Bạn phải viết đúng đường dẫn đầy đủ. Không sử dụng '~ / Thư viện / 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

Trên Ubuntu, nơi bạn có để có được SDK riêng biệt với Android Studio lạ đường dẫn sẽ hoạt động với Android Studio nhưng với Phản ứng Native, bạn sẽ cần phải tạo ra một tên tập tin local.properties.

Ví dụ quán trọ ~/AwesomeProject/androidvà chèn dòng này:
sdk.dir=/path/to/sdk/in/your/computer


4

Kiểm tra trong local.propertiestập tin của bạn :

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

nếu định dạng phù hợp hay không


4

Nếu bạn đang sử dụng Ubuntu, chỉ cần truy cập thư mục android của dự án Reac -igen của bạn và tạo một tệp có tên local.propertiesvà thêm đường dẫn sdk android vào đó như sau:

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

4

Xóa local.propertiestừ android thư mục trong của bạn phản ứng dự án và thử nó.

Tôi đã làm điều này và đã thành công.


3

Sao chép dự án android.properations khác của hệ thống của bạn và dán vào thư mục Android của dự án gốc React mà nó sẽ hoạt động.


Kudos cho một giải pháp chống đạn xảo quyệt;)
Hack06

3

Điều này làm việc cho tôi.

Tôi đang dùng React Native của Stephen Grider trên Udemy và một trong những sinh viên đã đăng bài này trong Bài giảng 50. Dán nguyên văn trong dòng lệnh (tất nhiên là w / o '$').

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

Đừng làm điều này. nó sẽ dẫn đến lỗi> The SDK directory '/usr/local/opt/android-sdk' does not exist.
thexande

3

Giải pháp tốt nhất tôi có thể tìm thấy như sau:

  1. Tải xuống Android Studio và SDK theo lựa chọn của bạn (Ngay cả khi bạn nghĩ rằng bạn không cần nó, hãy tin tôi rằng bạn sẽ cần nó để phát hành tệp apk và một số thay đổi thủ công đối với mã Android).
  2. Tệp> Mới> Nhập, trỏ đến vị trí dự án Android gốc phản ứng của bạn.
  3. Nếu nó yêu cầu bạn tải xuống bất kỳ SDK cụ thể nào thì vui lòng tải xuống. Nó có thể yêu cầu bạn cập nhật lớp, v.v ... Hãy tiếp tục cập nhật ở những nơi cần thiết.
  4. Nếu bạn có SDK Android hiện có và bạn biết phiên bản thì tất cả những gì bạn phải làm là khớp với phiên bản đó trong build.gradle của dự án Android của bạn.

Đây là cách tập tin gradle sẽ trông như thế nào:

nhập mô tả hình ảnh ở đây

Nếu mọi thứ đã diễn ra tốt đẹp với thiết lập máy của bạn và bạn có thể biên dịch dự án bằng Android Studio thì sẽ không có gì ngăn cản bạn xây dựng ứng dụng của mình thông qua lệnh android cli build gốc.

Với phương pháp này, không chỉ bạn sẽ giải quyết vấn đề về SDK, bạn cũng sẽ giải quyết nhiều vấn đề liên quan đến thiết lập máy để phát triển Android. Việc nhập sẽ tự động tìm vị trí SDK và tạo local.properies. Do đó bạn không cần phải lo lắng về các can thiệp thủ công.


2

Dành cho người dùng Linux

Ứng dụng của bạn không nhận được đường dẫn của android-sdk, vì vậy Nếu bạn đang sử dụng linux (ubfox), bạn cần thêm một tệp có tên "local.properIES" và lưu nó vào thư mục android, được tạo trong thư mục ứng dụng của bạn .

Bạn cần thêm dòng bên dưới vào tệp local.properIES, đây là đường dẫn của android-sdk của bạn nằm trong hệ thống của bạn bên trong hệ thống để chạy ứng dụng.

sdk.dir=/opt/android-sdk/

lưu và chạy lại lệnh Reac -igen run-android

HOẶC LÀ

bạn có thể mở terminal, gõ

sudo nano ~ / .bashrc

và dán đường dẫn bên dưới vào cuối tập tin

xuất ANDROID_HOME = "/ opt / android-sdk /"

khởi động lại máy tính của bạn và chạy lại Reac-android run-android sau đó.

Lưu ý: - Nếu bạn đặt đường dẫn đã đặt trong tệp .bashrc, thì bạn thậm chí không cần tạo tệp local.properIES.


Đây không phải là một giải pháp được mã hóa cứng mà phụ thuộc vào nơi Android Studio SDK được cài đặt. Trong trường hợp của tôi là sdk.dir = "pathWhereAndroidSDKisbeeninstalled / Android / Sdk"
Carmine Tambascia

2

Nếu bạn tạo và android studiochiếu, bạn có thể thấy một local.propertiestệp được tạo trong thư mục gốc của dự án. Khi bạn tạo một dự án gốc phản ứng, Nó không tạo tệp đó cho bạn. Vì vậy, bạn phải tạo nó bằng tay. Và phải thêm skd dir vào nó. Vì vậy, tạo một tập tin mới trong thư mục Android (trên root). và đặt đường dẫn sdk của bạn như thế này sdk.dir=D\:\\Android\\SDK\\android_sdk_studio . Ghi nhớ: xóa đơn \ với double. Cũng giống như trên.


2

Có 2 cách để giải quyết vấn đề này:

  1. Đơn giản chạy dự án Android gốc phản ứng của bạn trong studio android, nó sẽ tự động tạo tệp local.properIES của bạn trong dự án Android gốc phản ứng.

  2. a. Chuyển đến Dự án gốc React -> Android
    b. Tạo một tệp local.properies
    c. Mở tệp
    d. Dán đường dẫn SDK Android của bạn như bên dưới


1

Đảm bảo bạn đã cài đặt trình giả lập và phiên bản Android thích hợp. Điều đó đã giải quyết vấn đề cho tôi.


1

Trong Thư mục dự án của bạn có một thư mục gọi là "android" và bên trong nó có tệp local.properIES. Xóa tệp và bản dựng sẽ chạy thành công



0

Có hai tệp lớp, thay đổi tệp bên trong C: \ myapp \ android \ build.gradle và không có trong thư mục mẹ myapp.

Thay thế 23.0.1 bằng phiên bản Công cụ xây dựng Android của bạn được cài đặt trong trường hợp của tôi 25.0.0

Chạy Reac -igen run-android để xem ứng dụng của bạn trong trình giả lập.


0

Chỉ cần mở thư mục android trong dự án của Android Studio . Studio Android tạo tệp cần thiết (local.properies) và tải xuống phiên bản SDK để chạy Android cần thiết.


0

Tôi đang ở trên Windows và tôi đã phải sửa đổi đường dẫn sdk bất kể có nó trong PATH env. Biến đổi

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

Đã thay đổi tập tin này:

MyProject\android\local.properties

0

Vấn đề là bạn đã cấu hình sai các biến môi trường. Bạn phải sử dụng (trong Windows) SDK của:C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

Để biết thêm thông tin: https://facebook.github.io/react-native/docs/getting-started

Chọn: React Native CLI Quickstart trong phần môi trường phát triển Android ở điểm 3. Định cấu hình ANDROID_HOMEbiến môi trường

Nếu bạn làm điều đó như bạn có ngay bây giờ, bạn phải cấu hình từng dự án để sử dụng các biến môi trường của bạn và nếu dự án nằm trong số nhiều người có thiết bị của họ thì điều đó có thể gây ra sự cố. Nếu bạn làm như tôi đã nói với bạn, bạn sẽ không phải cấu hình bất kỳ dự án nào.


0

Nếu bạn đã cài đặt android studio, chỉ cần mở Project/androidAndroid Studio và nó sẽ thông báo cho bạn để chuyển đường dẫn vị trí SDK trong dự án.


-2

Sao chép dự án android.properations khác của hệ thống của bạn và dán vào thư mục Android của dự án gốc React mà nó sẽ hoạt động.

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

C \: \\ Người dùng \\ champika \\ AppData \\ Local \\ Android \\
Sdk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.