Saya bekerja dengan React-Native, Android, dan Genymotion di Mac. Ketika saya menjalankan react-native run-android
saya mendapatkan baris ini di akhir operasi peluncuran:
...
04:54:40 E/adb: error: could not install *smartsocket* listener: Address already in use
04:54:40 E/adb: ADB server didn't ACK
04:54:40 E/ddms: '/Users/paulbrie/Library/Android/sdk/platform-tools/adb,start-server' failed -- run manually if necessary
04:54:40 E/adb: * failed to start daemon *
04:54:40 E/adb: error: cannot connect to daemon
:app:installDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: Timeout getting device list.
...
Namun, adb devices
kembalikan ini:
List of devices attached
192.168.59.101:5555 device
Sejauh ini saya belum menemukan solusi untuk menjalankan aplikasi saya di emulator. Adakah yang mengalami masalah yang sama?
Terima kasih, Paul
Jawaban:
Setelah penelitian lebih lanjut saya menyadari bahwa Genymotion menggunakan secara default adb sendiri.
Saya beralih ke adb utama saya (yang sama dengan yang digunakan oleh react-native) dan itu memecahkan masalah. Saya kira itu karena adb Genymotion diluncurkan pertama kali saya mendapat
Address already in use
pesan kesalahan.sumber
/Users/$yourName/Library/Android/sdk
. Jika Anda menginstal Android, Anda harus mencari path Anda mengingat versi Android / platform Anda.Saya menggunakan genymotion, tetapi solusi Paul sendiri tidak memperbaiki kesalahan (untuk Mac).
Saya harus:
Perbarui Android SDK ke versi terbaru (24.4.1) melalui manajer SDK
Ketikkan
android
baris perintahDi manajer SDK, temukan alat SDK terbaru dan instal.
Setelah diinstal, jalur SDK harus memperbarui lokasi SDK baru seperti di bawah ini.
Kemudian perbarui $ ANDROID_HOME untuk menggunakan SDK baru
export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.4.1_1
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Konfirmasikan telah ditambahkan dengan melihat jalur Anda dengan
echo $PATH
Kemudian dalam genymotion lakukan apa yang @Paul katakan di atas dan arahkan genymotion ADB untuk menggunakan SDK yang sama
sumber
$ANDROID_HOME/tools
direktori tidak akan diperlukan di classpath. Anda perlu menambahkan untuk terhubung ke adb.Sistem: Windows 10
Masalah saya: Mengatur Genymotion untuk mengarah ke SDK khusus tidak memiliki pengaruh apa pun. Saya masih menerima:
Apa yang saya temukan adalah ada perbedaan dalam versi ADB yang digunakan di seluruh sistem. Ini adalah perintah yang saya gunakan untuk menemukannya:
Ini menghasilkan hasil:
Menavigasi ke setiap direktori dan menjalankan:
Mengizinkan saya melihat bahwa Expo menjalankan versi ADB:
Sementara Genymotion menggunakan SDK kustom memiliki versi (c: \ Users \ kyle \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe):
Sebagai ujian saya mengambil file adb (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) dari
dan menempatkannya di folder cadangan. Saya kemudian memindahkan file adb yang terletak di
ke lokasi yang sama. Saya membunuh adb dengan:
yang menyebabkan restart server adb secara otomatis karena perangkat Genymotion saya sudah berjalan. Saya menekan tombol "Restart" di dalam Expo XDE dan segera mulai bekerja. Ini adalah log tempat saya menekan tombol restart pada 1:13:04 pagi:
Kesimpulan: Genymotion dan Expo mungkin perlu menggunakan versi adb yang sama agar Expo dapat berkomunikasi dengan baik dengan perangkat yang disimulasikan. Menunjuk Genymotion ke lokasi SDK android Anda serta memastikan Expo XDE memiliki versi yang sama akan memungkinkan komunikasi yang benar antar perangkat. Saya memindahkan versi Expo XDE ke lokasi SDK, tetapi Anda mungkin bisa pergi ke arah lain (ambil file ADB sdk dan letakkan di lokasi sumber daya Expo XDE).
PS Saya sudah melalui posting stackoverflow yang terkait dengan masalah ini. Supaya kalian tahu task manager saya menunjukkan tiga contoh menjalankan adb.exe. Jika Anda membunuh salah satu dari mereka, mereka baru saja kembali.
Semoga ini bisa membantu / bersorak
sumber
Mungkin versi adb Anda tidak cocok
Memeriksa:
Kemudian:
Jika keduanya berbeda Anda memiliki kesalahan di sini, cukup hapus adb dari sys dan salin yang ada di platform-tools ke / usr / bin /
sumber
Jika ingin menjaga sistem Anda tetap bersih, Anda juga dapat menggunakan Genymotion tanpa Android Studio :
adb
. Pada macOS ini biasanya/Applications/Genymotion.app/Contents/MacOS/tools/
.export PATH=/Applications/Genymotion.app/Contents/MacOS/tools/:$PATH
ke~/.bash_profile
atau~/.bash_rc
.(Dari https://docs.expo.io/versions/latest/workflow/genymotion )
sumber
versi adb di sistem Anda berbeda dari versi adb di alat platform SDK Android. Saran di bawah ini berfungsi untuk saya untuk sistem operasi Linux
Android Debug Bridge versi 1.0.39
Android Debug Bridge versi 1.0.32
[Catatan: perintah di atas menghapus adb yang ada kemudian salin adb dari direktori sdk / platform-tools]
Kemudian jalankan proyek menggunakan perintah ini
sumber
Saya memiliki hal yang sama ketika saya mencoba lari dari UI pameran. Melakukan hal yang sama, seperti dijelaskan dalam jawaban, tetapi aplikasi tidak berjalan. Ketika pernah mencoba menjalankan
exp android
dari baris perintah (dalam folder proyek), aplikasi berjalan dengan sukses dan kali berikutnya berjalan dari Expo UI berhasil.sumber
Saya punya masalah serupa.
Pertama, saya uninstall aplikasi. Lalu, saya arahkan GenyMotion ke android sdk yang disediakan dari Android Studio Selanjutnya, saya menjalankan "adb kill-server" ke terminal. Akhirnya, saya kembali menjalankan "react-native run-android" dan mendapatkan kesuksesan membangun.
sumber
Langkah-langkah yang berhasil bagi saya adalah:
$ adb kill-server
$ adb start-server
$ cd android
$ ./gradlew bersih
$ cd ..
$ react-native run-android
sumber
Untuk Ubuntu
Ini bekerja untuk saya !!
Android Debug Bridge versi 1.0.39
2 periksa sdk adb versi
Android Debug Bridge versi 1.0.32
itu saja! Ini akan berfungsi sekarang.
sumber
1.menggunakan jalur sdk khusus dalam genymotion. (Misalkan yang ini tidak akan berfungsi berarti, Coba jalankan yang kedua)
2. Secara manual gunakan perintah ini untuk mengeksekusi (SDK PATH / adb dia akan mulai -n / Nama paket / MainActivity).
C: \ Users \ AppData \ Local \ Android \ Sdk / platform-tools / adb dia akan memulai -n com.example / com.example.ManiActivity
Dan coba jalankan aplikasi dengan menggunakan react-native run-android.
sumber
Inilah langkah-langkahnya
sumber