Pertanyaan platform cordova menambahkan android tidak berfungsi saat mendaftarkan target Android


Saya mendapat masalah ketika saya ingin menambahkan platform Android ke aplikasi phoneGap saya. Saya mendapat pesan ini di CLI saya ketika saya menjalankan platform command cordova menambahkan android:

Checking Android requirements... (Error: An error occurred while listing Android targets)

Saya sudah mencoba menambahkan lokasi sdk android saya di variabel jalur.

Tolong bantu aku ! : D

Saya bekerja pada Windows 7 64 bit, saya menginstal API Android 17, 18 dan 19 dengan SDK Android. Saya menggunakan versi 3.2 phoneGap.


75
2017-12-02 08:28


asal


Jawaban:


Untuk bekerja, perintah cordova ini perlu menggunakan beberapa program yang ada di dalam program Anda sdk/tools direktori. Anda juga perlu menginstal semut apache.

Maka Anda harus menambahkan direktori ini ke Anda PATH variabel sistem:

Latar Belakang:

  • mari kita asumsikan Anda telah menginstalnya SDK Android ke c:\sdk\android direktori
  • Anda telah menginstal Anda Semut Apache ke c:\tools\apache-ant direktori

Maka Anda harus membuat dua variabel sistem:

  1. ANDROID_HOME dengan c:\sdk\android nilai
  2. ANT_HOME dengan c:\tools\apache-ant nilai

Akhirnya, Anda harus memodifikasi PATH variabel dan tambahkan keduanya ke ujung PATH'nilai:

;%PATH%\tools;%ANT_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

CATATAN: bagi mereka yang menggunakan Linux, instruksi sedikit berbeda.

Dokumentasi lebih tersedia sini.


167
2017-12-02 16:29



Bagi mereka yang dipilih, yang lebih suka lingkungan pengembangan Linux

Persyaratan

Pertama-tama, Anda perlu beberapa hal untuk memulai. Mereka: Android SDK dan Apache Ant. Tentu saja, Anda akan membutuhkannya Java SDK (JDK) diinstal.

Agar SDK Android berfungsi untuk semua pengguna, Anda harus memodifikasi /etc/environment file dan kemudian restart PC Anda. Tetapi jika Anda tidak menginginkannya dengan cara yang sulit - ikuti saya, pikirkan diri Anda sebagai satu-satunya pengguna PC. Dan digunakan /home/YOUR_USERNAME/.bashrc file untuk diedit.

Mari kita ingat jalan satu rumah Anda untuk mencegah antrean panjang. Tambahkan ini ke Anda /home/YOUR_USERNAME/.bashrc:

export HOME="/home/YOUR_USERNAME"

Kami kemudian akan menggunakan $HOME notasi ketika kita ingin mengatakan "/home/YOUR_USERNAME directory".

Menyiapkan SDK Android

Unduh arsip Android SDK dan unzip di suatu tempat. Katakanlah, Anda direktori home Anda, $HOME/adt-bundle/.

Tambahkan baris ini ke Anda $HOME/.bashrc:

export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"

Menyiapkan Ant

Sama seperti SDK Android, unduh arsip dan unzip ke direktori rumah Anda. Kemudian tambahkan ini ke Anda .bashrc:

export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"

Saya telah menginstal satu via apt-get jadi ini tidak mempengaruhi saya .bashrc.

Menerapkan perubahan

Agar perubahan ini berfungsi, Anda harus bekerja di jendela terminal baru (dibuka setelah perubahan), atau jalankan source ~/.bashrc untuk membuat perubahan tersedia di jendela terminal saat ini.

Membungkus

Pada akhirnya, Anda akan mendapatkan:

  1. Dua direktori di direktori home Anda - ant dan android-bundle
  2. Beberapa baris, ditambahkan ke Anda .bashrc:

    export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
    export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
    export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
    
    export ANT_HOME="$HOME/ant"
    export PATH="$PATH:$ANT_HOME/bin"
    

42
2018-01-15 16:09



Jalankan perintah "android" dari folder adt \ sdk \ tools Anda dan instal Alat dan SDK terbaru. Juga pastikan PATH Anda memiliki variabel yang tepat.

Untuk ini, Anda perlu menginstal ANT, JAVA JDK dan SDK Android yang diinstal

JAVA_HOME (C: \ Program Files \ Java \ jdk)

ANT_HOME ({ant location} \ apache \ apache-ant)

ANDROID_HOME ({android sdk location} \ android-sdk)

Tambahkan ini ke variabel PATH Anda seperti% ANT_HOME% / bin;% ANDROID_HOME% \ tools;% ANDROID_HOME% \ platform-tools;% JAVA_HOME% \ bin

Tutup dan buka kembali cmd Anda dan jalankan perintah Anda lagi.

Mirip dengan Pengembangan Android PhoneGap / Cordova 


21
2018-02-06 20:47



Saya tidak yakin apakah ini adalah masalah Anda, tetapi saya mengalami kesalahan serupa ketika cache perpustakaan cordova tercemar dengan sesuatu yang rusak. Untuk memperbaikinya, Anda hanya perlu menghapus cache cordova, dan secara otomatis akan terisi kembali saat Anda menggunakan 'cordova'.

Pada OS X, direktori ini adalah ~ / .cordova. Di Windows, saya berasumsi itu .cordova di direktori home pengguna Anda masih.


4
2017-12-02 08:52



Jawabannya adalah "Semua yang Di Atas". Lakukan seperti yang disebutkan dengan variabel lingkungan, namun, lakukan juga ini:

C: \ Users {YOUR_NAME} .cordova \ lib \ android \ cordova \ 3.5.0 \ framework mengedit file project.properties dan ubah target = android-19 ke target = android-20.

Agaknya ini perlu diubah untuk rendisi berikutnya android sdk juga sampai masalah kecil ini diselesaikan.


4
2017-07-17 19:39



Saya memiliki masalah yang sama meskipun variabel jalur ditetapkan tepat sesuai instruksi. Setelah melalui banyak file, akhirnya saya berhasil menyelesaikannya. Bagi saya (Windows 7 enterprise 64 bit) saya harus memodifikasi check_reqs.js dan create.js dari "C: \ Users \ .cordova \ lib \ android \ cordova \ 3.5.0 \ bin \ lib \" folder untuk memasukkan path absolut untuk android.bat. SDK Android saya ada di bawah "C: \ Android \ android-sdk".

Di check_reqs.js saya modifikasi

child_process.exec('android list targets', function(err, stdout, stderr) {

untuk

child_process.exec('C:\\Android\\android-sdk\\tools\\android.bat list targets', function(err, stdout, stderr) {

Di create.js saya mengubah pernyataan

return exec('android update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');

untuk

return exec('C:\\Android\\android-sdk\\tools\\android.bat update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');

Juga jangan lupakan mereka yang double "\\" di jalur absolut


3
2018-05-27 20:20



setelah perjuangan panjang, setelah melakukan semua saran di atas lebih dari sekali dengan putus asa, saya hanya membuka cmd saya sebagai administrator. itu berhasil. Saya kira saya baru saja digunakan untuk "sudo" sebelum saya mendapatkan pc ini.


2
2018-02-05 16:45



Bagi mereka yang telah mengalami masalah ini saya menambahkan sesuatu yang ekstra yang dapat membantu, dalam kasus saya memiliki semua variabel dikonfigurasi dengan benar dan ini masih tidak dapat menambahkan platform android dan saya lakukan adalah menonaktifkan antivirus avast saya dan puff! semuanya mengalir lancar, yang terjadi adalah antivirus menghalangi pembuatan platform.

Yang juga penting bagi saya adalah me-restart komputer. ;)

Salam.


2
2018-03-31 04:36



Saya melihat masalah dengan Cygwin / Windows 7. Masalahnya berasal dari cara yang sedikit berbeda Cygwin dan shell MS-DOS memperlakukan file .bat.

Selama "tambahkan platform", cordova memanggil "android":

C:\Users\xxx\.cordova\lib\android\cordova\3.4.0\bin\lib\check_reqs.js

Di mana ia memanggil 'target daftar android' (pada baris 73)

"Android" harus di-resolve ke /xx/android-sdk/tools/android.bat atau xx: \ android-sdk \ tools \ android.bat. (Dan, kenyataannya, saya bisa menjalankan "android" pada shell perintah MS-DOS - tetapi tidak di shell Cygwin. Di sana saya perlu menambahkan ".bat".)

"android" tanpa ".bat" gagal di Cygwin shell karena android.exe tidak ada (hanya .bat tidak). Mengubah baris 73 untuk memanggil 'target daftar android.bat' akan menyelesaikan masalah Anda (atau memberikan pesan kesalahan yang masuk akal).

Pekerjaan lain adalah untuk menjalankan cordova dalam shell MS-DOS bukan shell Cygwin.


1
2018-04-28 14:27



Kami memiliki daftar solusi di sini, jadi saya menambahkan satu saya. Itu tidak jelas bagi saya sampai saya hanya mencoba. Anda harus menambahkan% ANT_HOME% \ bin;% ANDROID_HOME% \ tools;% ANDROID_HOME% \ platform-tools untuk variabel PATH PENGGUNA, bukan ke Sistem satu. Variabel PATH sistem akan secara otomatis menggabungkan variabel PATH USER dan menerjemahkan variabel ke nilainya. Semoga itu membantu seseorang. P.S. OS saya Menang 7x64


0
2018-06-13 07:37