Bereaksi Native android build gagal. Lokasi SDK tidak ditemukan

473

Saya memiliki kesalahan ketika saya mulai menjalankan 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
sumber

Jawaban:

843
  • Buka android/direktori proyek asli-reaksi Anda
  • Buat file yang disebut local.propertiesdengan baris ini:
sdk.dir = /Users/USERNAME/Library/Android/sdk

Di mana USERNAMEnama pengguna macOS Anda

Hasil buruan
sumber
* Apa yang salah: Terjadi masalah saat mengonfigurasi proyek ': app'. > Direktori SDK '/ usr / local / android-SDK' tidak ada. Tapi sebenarnya SDK saya ada di jalur ini
Pyae Sone Nyein
3
Apakah kalian memperbaiki masalah ini? Saya juga menghadapi ini sekarang.
Gasper Kolenc
8
Saya dapat memperbaiki ini dengan menjalankan dari Android Studio. Setelah Anda selesai melakukannya, ia bekerja dari baris perintah.
Gant Laborde
Ya membuat properti lokal itu memang memecahkan masalah saya. Aneh tapi berhasil.
Sanj
113
Jika jendela Andasdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
Razze
423
  1. Buka Proyek asli-React Anda -> Android
  2. Buat file local.properties
  3. Buka file
  4. tempel jalur Android SDK Anda seperti di bawah ini

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

Ganti USERNAMEdengan nama pengguna Anda

Sekarang, Jalankan react-native run-androiddi terminal Anda.

Naveen TP
sumber
4
Saya memindahkan SDK saya ke drive eksternal saya. Bekerja untuk saya menggunakan macOS Sierra.
ruelluna
4
di linuxsdk.dir=/home/USERNAME/Android/Sdk
ebin
sdk.dir = / home / USERNAME / Android / Sdk -> berfungsi untuk linux tetapi Android Studio untuk Linux harus ada dan berfungsi (gradle running)
MarcoZen
Menampilkan kesalahan * Apa yang salah: Terjadi masalah saat mengonfigurasi proyek ': app'. > Direktori SDK '/ Pengguna / chandni sharma / Library / Android / SDK' tidak ada.
Chandni
2
@ Chandni Pastikan Anda telah menginstal Android SDK
a_rahmanshah
116

Anda dapat mencoba menambahkan ANDROID_PATH

export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Nish
sumber
10
Saya sudah ada ANDROID_PATHdi lingkungan (Ubuntu, file .bashrc). Namun, untuk beberapa alasan saya masih mendapatkan masalah. Saya memperbaikinya dengan membuat local.propertiesdan meletakkan jalan seperti yang dinyatakan dalam jawaban lain.
Hesam
3
Saya punya mac dan env var ANDROID_HOME tidak membantu. local.propertiesNamun demikian.
Henrik
60

Buka ~/.bash_profiledan tambahkan:

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

masukkan deskripsi gambar di sini

notdrone
sumber
10
Bekerja Ingatlah untuk memulai kembali Terminal, atau ketik source ~/.bash_profileuntuk membuat jalur ekspor baru berlaku.
Raptor
Bisakah Anda menambahkan jika ada badan yang tidak dapat menemukan bash_profile kemudian membuat satu untuk timer pertama mereka tidak dapat menemukan itu (Begitu juga saya: p)
snehal agrawal
44

JANGAN DIPERBARUI local.properties , ini jelas merupakan praktik yang buruk.

Beginilah cara saya memperbaikinya. Tambahkan berikut ini dalam ~/.bash_profileatau ~/.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

Catatan: Saya dulu brew caskmenginstal Android SDK mengikuti instruksi ini .

locropulenton
sumber
6
Itulah jawaban terbaik, tidak perlu mengubah properti lokal. Bekerja sempurna untuk saya
mike_dz
mengapa itu praktik buruk? benar-benar ingin tahu karena sepertinya membuat perubahan yang dilokalkan jauh lebih aman daripada membuat perubahan ke jalur sistem Anda
Robbie Milejczak
8
Karena jika kode ini akan diperiksa ke dalam kontrol sumber, orang berikutnya yang mencoba membangun dengannya akan melihat halaman ini.
Dave Welling
31

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

snowcamel
sumber
1
Ini adalah cara paling aman karena Anda tidak mengubah file sistem global. Dan bagi mereka yang tidak memiliki jenis akses admin ke mesin mereka.
GravyPlaya
23

Jika Anda berada di windows escape (tambahkan backlash ke) backslash dan titik dua dalam android/local.propertiesfile. Jika tidak ada maka buatlah

sdk.dir = C\:\\Android\\sdk
Sajjad Ashraf
sumber
2
Untuk Windows, Android SDK berada di bawah C: \ Program Files \ Android \ android-sdk
Stephane
16

Langkah-langkah yang diperbarui untuk React Native0.58 untuk memulai pada MAC / Unix

  • Buka bash_profile di terminal

nano ~ / .bash_profile

export ANDROID_HOME = $ HOME / Library / Android / sdk

export PATH = $ PATH: $ ANDROID_HOME / emulator

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
  • Perbarui perubahan di terminal

source ~/.bash_profile

  • Jalur Validasi:

echo $PATH

  • Konfirmasikan jika semuanya baik-baik saja:

adb devices

Hitesh Sahu
sumber
Selamatkan
Terkadang Anda perlu menutup dan membuka kembali terminal Anda
Oluwatobi Samuel Omisakin
14

Untuk Pengguna Windows

Salah satu solusi sederhana adalah dengan mengatur jalur SDK ke daftar Enviroment Variables.

  1. Kepala ke variabel Lingkungan. (PC Anda> Properti)
  2. Membuat variabel Sistem Baru
  3. Mengatur nama Variabel ke ANDROID_HOME
  4. Mengatur Variabel ke Lokasi Sdk Android Anda
  5. Tekan OK (3 kali untuk 3 kotak dialog)

catatan:

SDK Android Anda umumnya berada di

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

Pastikan untuk menutup terminal Anda saat ini karena terminal Anda menyimpan semua Variabel Lingkungan yang sudah ada sebelumnya.

Ozesh
sumber
Hanya itu saja. Tidak perlu mengedit properti lokal, terima kasih.
Rhadamez Gindri Hercilio
1
Bekerja seperti pesona 😊. Terima kasih banyak!
kapil pandey
Ingatlah untuk me-reboot mesin Anda
mtoninelli
1
Saya melewatkan omg "tutup terminal Anda saat ini" dan saya mencoba saya hampir menyerah dan saya membaca lagi hahaha terima kasih! ini berhasil!
Michimcchicken
11

Memperbaiki Kesalahan Jalur SDK di Distribusi Linux


Proyek Anda tidak menemukan set SDK di Pengaturan Proyek melalui jalur yang disediakan, sehingga proyek perlu menunjuk ke arah yang benar, dan Anda memiliki beberapa opsi untuk mencapai ini, tetapi mari kita mulai dengan menemukan folder SDK yang benar terlebih dahulu.


Menemukan SDK Anda


Dari Package Manager


Jika Anda menggunakan instalasi JRE berbasis paket seperti Java 8 JRE melalui PPA khusus dalam distribusi berbasis Debian, atau menggunakan OpenJDK , direktori kemungkinan besar adalah / usr / lib / jvm / java-8-oracle (atau versi apa pun yang Anda pilih). Anda dapat menemukan jalur ini disetel dalam variabel lingkungan JAVA_HOME :

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

Unduh Manual


Jika Anda telah menginstal melalui unduhan Java JRE / SDK , itu akan berada di mana pun Anda meletakkan folder, misalnya / home / nama pengguna / jdk-8u121_1.8.0 (atau yang serupa).

Instalasi dengan script bahkan dapat menambahkan SDK ke / opt / java-8-oracle , tetapi pada saat penulisan ini, instruksi Java Install meninggalkan penempatan folder di tangan Anda.


Android Studio 2.2


Terakhir jika Anda menggunakan Android Studio, SDK ditempatkan di tempat Anda telah mengaturnya untuk menempatkan file SDK yang diunduh melalui Studio's SDK Manager. Dengan masuk ke File> Pengaturan> Tampilan & Perilaku> Pengaturan Sistem> Android SDK , Anda dapat menemukan pengaturan lokasi SDK di bagian atas dengan opsi untuk berubah, dan folder defaultnya adalah ~ / Android / Sdk .

Android Studio SDK Path

Mengatur Path SDK

Sekarang kita tahu di mana SDK berada, sekarang saatnya untuk memberi tahu orang asli yang bereaksi.


Opsi 1: Setel dengan local.properties


Metode ini sangat sederhana, dan yang diperlukan hanyalah membuat file local.properties di folder berikut ini, di mana Project_Folder adalah basis aplikasi React-Native Anda:

Project_Folder / Android / App

Di properti local.prop Anda, Anda ingin mengatur variabel sdk.dir ke jalur folder SDK Anda:

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

Meskipun ini adalah cara termudah untuk memperbaiki masalah ini, ini bukan yang terbaik, terutama jika Anda bekerja dengan banyak proyek. Untuk setiap proyek, Anda harus membuat file ini untuk setiap proyek, dan jika folder tersebut mengubah rencana untuk mengubah file ini untuk setiap properti.properti masing-masing proyek.

Setelah file disimpan, jalankan kembali perintah run-android run-native .


Opsi 2: Pengaturan Folder dengan Variabel Lingkungan


Opsi lainnya adalah mengatur folder SDK ke variabel lingkungan lokal yang React-Native cari secara default. Untuk melakukannya, kami akan menambahkan jalur ANDROID_HOME. Sebagai bonus kami juga dapat menambahkan alat android kami di tempat yang sama. Kita perlu menambahkan ini ke file .bash_profile atau .profile di direktori home kita, yang dimuat terakhir, sehingga kita dapat memastikan bahwa tidak ada lagi yang menimpa pengaturan yang kita buat. Karena ini ada di direktori home Anda, tidak perlu mengedit dengan hak istimewa yang ditingkatkan.

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

Dalam file tambahkan baris berikut menggantikan folder SDK dengan yang Anda temukan di atas. Saya akan menggunakan folder Android Studio sebagai contoh:

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

Simpan file, lalu terapkan pengaturan profil:

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

Jika folder SDK ditampilkan dengan benar, selamat! Jalankan kembali perintah reaksi asli Anda, dan saksikan proses pembuatan aplikasi dilanjutkan.


Jika Anda masih memiliki masalah


Jika karena alasan tertentu Anda menerima kesalahan " > gagal menemukan target dengan string hash 'android-23' di: folder / sdk / Anda, Anda perlu memastikan bahwa versi pembangunan proyek dan versi pertandingan yang diinstal SDK (Bereaksi - Default asli ke 23.0.1). Anda dapat menemukan versi default di Project_Folder / android / app / build.gradle , dan kemudian mencari buildToolsVersion . Tentu saja Anda dapat mengubah versi dari file ini, atau di Android Studio, buka File > Struktur Proyek untuk mengubah Project SDK . Saya tidak akan menyarankan mengubah versi ini kecuali jika Anda benar-benar tahu apa yang Anda lakukan, jika tidak instal versi SDK yang dicari proyek tersebut.

DBrown
sumber
7

Anda harus menulis jalur lengkap yang benar. Jangan gunakan '~ / 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
sumber
7

Di Ubuntu, di mana Anda harus mendapatkan SDK secara terpisah dari Android Studio anehnya jalurnya akan bekerja dengan Android Studio tetapi dengan React Native, Anda harus membuat nama file local.properties.

Misalnya penginapan ~/AwesomeProject/androiddan masukkan baris ini:
sdk.dir=/path/to/sdk/in/your/computer

Connelblaze
sumber
4

Lihat di local.propertiesfile Anda :

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

apakah formatnya sesuai atau tidak

Makvin
sumber
4

Jika Anda menggunakan Ubuntu, cukup buka direktori android proyek asli-reaksi Anda dan buat file bernama local.propertiesdan tambahkan path SDK android ke dalamnya sebagai berikut:

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

Hapus local.propertiesdari folder android di proyek reaksi Anda dan coba.

Saya sudah melakukan ini dan berhasil.

Zaid Qureshi
sumber
3

Salin proyek android Anda di local.properties proyek lokal dan rekatkan di folder android proyek React-native, itu akan berhasil.

Rathore
sumber
Kudos untuk solusi licik dan anti peluru;)
Hack06
3

Ini berhasil untuk saya.

Saya mengambil React Native karya Stephen Grider pada Udemy dan salah satu siswa memposting ini di Kuliah 50. Disisipkan kata demi kata dalam baris perintah (tentu saja tanpa $ ').

$ export "ANDROID_HOME=/usr/local/opt/android-sdk" >~/.bash_profile
Utah
sumber
Jangan lakukan ini. itu akan menghasilkan kesalahan> The SDK directory '/usr/local/opt/android-sdk' does not exist.
thexande
3

Solusi terbaik yang dapat saya temukan adalah sebagai berikut:

  1. Unduh Android Studio dan SDK pilihan Anda (Bahkan jika Anda merasa tidak memerlukannya percayalah bahwa Anda akan memerlukannya untuk melepaskan file apk dan beberapa perubahan manual pada kode android).
  2. File> Baru> Impor, arahkan ke lokasi di mana proyek Android asli Anda bereaksi.
  3. Jika meminta Anda untuk mengunduh SDK tertentu, silakan unduh yang sama. Itu dapat meminta Anda untuk memperbarui gradle dll ... Harap terus memperbarui jika diperlukan.
  4. Jika Anda memiliki Android SDK yang ada dan Anda tahu versinya maka yang harus Anda lakukan adalah mencocokkan versi itu dengan build.gradle proyek android Anda.

Beginilah tampilan file gradle:

masukkan deskripsi gambar di sini

Jika semuanya telah berjalan dengan baik dengan pengaturan mesin Anda dan Anda dapat mengkompilasi proyek menggunakan Android Studio maka tidak ada yang akan menghentikan Anda untuk membangun aplikasi Anda melalui reaksi asli Android membangun perintah android.

Dengan pendekatan ini, tidak hanya Anda akan menyelesaikan masalah SDK, Anda juga akan menyelesaikan banyak masalah yang terkait dengan pengaturan mesin Anda untuk pengembangan Android. Impor akan secara otomatis menemukan lokasi SDK dan membuat properti lokal. Karenanya Anda tidak perlu khawatir tentang intervensi manual.

berbasis kode
sumber
2

Untuk Pengguna Linux

Aplikasi Anda tidak mendapatkan jalur android-SDK, jadi Jika Anda menggunakan linux (ubuntu), maka Anda perlu menambahkan file bernama "local.properties" dan menyimpannya di dalam folder android, yang dibuat di dalam folder aplikasi Anda .

Anda perlu menambahkan baris di bawah ini di dalam file local.properties, yang merupakan jalur android-SDK Anda berada di dalam sistem Anda di dalam sistem untuk menjalankan aplikasi.

sdk.dir=/opt/android-sdk/

simpan dan jalankan kembali perintah react-native run-android

ATAU

Anda dapat membuka terminal, ketik

sudo nano ~ / .bashrc

dan tempelkan path di bawah ini di akhir file

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

dan nyalakan kembali komputer Anda dan jalankan lagi react-native run-android setelah itu.

Catatan: - Jika Anda meletakkan set path dalam file .bashrc, maka Anda bahkan tidak perlu membuat file local.properties.

Yash Vekaria
sumber
Ini seharusnya bukan solusi hardcoded tetapi tergantung di mana Android Studio SDK diinstal. Dalam kasus saya adalah sdk.dir = "pathWhereAndroidSDKisbeeninstalled / Android / Sdk"
Carmine Tambascia
2

Jika Anda membuat dan android studiomemproyeksikan, Anda dapat melihat local.propertiesfile dibuat di dalam direktori root proyek Anda. Ketika Anda membuat proyek asli yang bereaksi, itu tidak membuat file itu untuk Anda. Jadi, Anda harus membuatnya secara manual. Dan harus menambahkan skd dir ke sana. Jadi buat file baru di dalam folder android (di root). dan letakkan sdk path Anda seperti ini sdk.dir=D\:\\Android\\SDK\\android_sdk_studio . Ingat: hapus single \ dengan double. Sama seperti di atas.

Nouman Ghaffar
sumber
2

Ada 2 cara untuk mengatasi masalah ini:

  1. Sederhana menjalankan proyek Android asli reaksi Anda di studio android itu akan secara otomatis menghasilkan file local.properties Anda dalam bereaksi proyek Android asli.

  2. Sebuah. Buka Proyek asli-React -> Android
    b. Buat file local.properties
    c. Buka file
    d. Tempel jalur Android SDK Anda seperti di bawah ini

Hassan Denmark
sumber
1

Pastikan Anda menginstal emulator dan versi Android yang tepat. Itu memecahkan masalah bagi saya.

Arel
sumber
1

Di Direktori Proyek Anda ada folder bernama "android" dan di dalamnya ada file local.properties. Hapus file dan build seharusnya berhasil dijalankan

Peter Hassaballah
sumber
0

Ada dua file gradle, ubah satu di dalam C Anda: \ myapp \ android \ build.gradle dan bukan di direktori induk myapp.

Ganti 23.0.1 dengan versi Android Build Tool Anda terinstal di kasing kasus saya 25.0.0

Jalankan react-native run-android untuk melihat aplikasi Anda di emulator.

P.Ranjan
sumber
0

Cukup buka folder android dalam proyek oleh Android Studio . Android studio membuat file yang diperlukan (properti lokal) dan mengunduh versi SDK untuk menjalankan Android yang diperlukan.

Rasoul Miri
sumber
0

Saya di Windows dan saya harus memodifikasi jalur SDK terlepas dari memilikinya di PATH env. variabel

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

Mengubah file ini:

MyProject\android\local.properties
NK_Mimrot
sumber
0

Masalahnya adalah bahwa Anda telah salah mengonfigurasi variabel lingkungan. Anda harus menggunakan (pada Windows) SDK dari:C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

Untuk informasi lebih lanjut: https://facebook.github.io/react-native/docs/getting-started

Pilih: React Native CLI Quickstart di bagian lingkungan pengembangan Android di poin 3. Konfigurasikan ANDROID_HOMEvariabel lingkungan

Jika Anda melakukannya seperti yang Anda miliki sekarang, Anda harus mengonfigurasi setiap proyek untuk menggunakan variabel lingkungan Anda dan jika proyek tersebut ada di antara beberapa orang dengan peralatan mereka, hal itu dapat menyebabkan masalah. Jika Anda melakukannya seperti yang saya katakan, Anda tidak perlu mengkonfigurasi proyek apa pun.

Ivan Allue
sumber
0

Jika Anda memiliki android studio yang diinstal, cukup buka Project/androidmenggunakan Android Studio, dan itu akan memberi tahu Anda untuk beralih jalur lokasi SDK dalam proyek.

Kue keberuntungan
sumber
-2

Salin proyek android Anda di local.properties proyek lokal dan rekatkan di folder android proyek React-native, itu akan berfungsi.

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