Bagaimana cara menginstal Android SDK Build Tools di baris perintah?

292

Saya ingin mengatur lingkungan dev Android dari baris perintah, dan menghadapi masalah berikut:

wget http://dl.google.com/android/android-sdk_r22.0.5-linux.tgz

setelah mengekstrak file, jalankan

tools/android update sdk --no-ui

Namun, ini terlalu lambat untuk dijalankan

Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml

Hasilnya adalah tidak ada apa pun di folder build-tools, dan yang saya inginkan adalah aapt dan apkbuilder, karena saya ingin membangun apk dari baris perintah tanpa semut.

Zhenguo Yang
sumber

Jawaban:

479

Secara default, SDK Manager dari baris perintah tidak menyertakan alat build dalam daftar. Mereka berada dalam kategori "usang". Untuk melihat semua unduhan yang tersedia, gunakan

android list sdk --all

Dan kemudian untuk mendapatkan salah satu paket dalam daftar itu dari baris perintah, gunakan:

android update sdk -u -a -t <package no.>

Di mana -u singkatan --no-ui, -a singkatan --all dan -t singkatan --filter.

Jika Anda perlu menginstal beberapa paket, lakukan:

pembaruan android sdk -u -a -t 1,2,3,4, .., n 

Di mana 1,2, .., n adalah nomor paket yang terdaftar dengan perintah daftar di atas

nsg
sumber
4
Jika Anda kehilangan alat build seperti 18.1.1 maka ini adalah cara yang tepat untuk menginstalnya menggunakan baris perintah.
Cray
19
itu agak menyebalkan, mereka tidak menyebutkan --allopsi dalam tips resmi . Terima kasih.
Alexander Malakhov
4
@DanielJonker Ya, benar. Gema saja "ya" ke perintah, yaitu gema ya | android update sdk --all --filter tools --no-ui --force> / dev / null
nsg
4
echo "yes"dapat disingkat menjadi echo "y", tapi itu tidak berhasil dalam semua kasus. Dalam beberapa kasus, Anda bisa mendapatkan lebih dari satu permintaan lisensi, tergantung pada filter dan paket tertentu. echo "y"akan menanggapi prompt pertama saja, tetapi tidak untuk yang lain. Saya berusaha membuatnya bekerja dengan yesperintah tanpa hasil sejauh ini.
i4niac
3
@AlexanderMalakhov Saya setuju, jika OS host Anda memiliki utilitas, menggunakannya adalah pilihan terbaik. Saya melihat pada ekspektasi pertama, tetapi dalam kasus saya, saya harus menjalankan skrip pada Linux distributif tertentu yang berjalan di AWS cloud. Distro itu tidak mengharapkan diinstal dan saya tidak memiliki hak yang cukup untuk menginstalnya sebagai bagian dari rencana pembangunan. Setelah mencari-cari, solusi terbaik yang saya temukan adalah <pre> <code> # memperbarui Android SDK pada server tanpa kepala FILTER = alat, platform, android-20 (sleep 5&& sementara [1]; lakukan sleep 1; echo y; selesai ) \ | pembaruan android sdk --no-ui --all \ --filter $ {FILTER} </code> </pre>
i4niac
140

Seperti disebutkan dalam jawaban lain, Anda dapat menggunakan --filteropsi untuk membatasi paket yang diinstal:

android update sdk --filter ...

Jawaban lain tidak menyebutkan bahwa Anda dapat menggunakan pengidentifikasi string konstan, bukan indeks (yang akan berubah) untuk opsi filter. Ini bermanfaat untuk pemasangan tanpa pengawasan atau skrip. Man for --filteroption:

... Ini juga menerima pengidentifikasi yang dikembalikan oleh 'list sdk --extended'.

android list sdk --all --extended :

Packages available for installation or update: 97
----------
id: 1 or "tools"
     Type: Tool
     Desc: Android SDK Tools, revision 22.6.2
----------
id: 2 or "platform-tools"
     Type: PlatformTool
     Desc: Android SDK Platform-tools, revision 19.0.1
----------
id: 3 or "build-tools-19.0.3"
     Type: BuildTool
     Desc: Android SDK Build-tools, revision 19.0.3

Kemudian Anda dapat menggunakan id tali sebagai opsi filter untuk menentukan versi yang Anda inginkan:

android update sdk --filter tools,platform-tools,build-tools-19.0.3 dll

robd
sumber
27
+1 untuk --extendedopsi, membuatnya jelas apa yang harus dipasang untuk skrip CI.
nhaarman
16
android updatejuga akan memerlukan --allopsi, jika tidak bantuan penggunaan ditampilkan. Misalnya: android update sdk --no-ui --all --filter build-tools-21.1.0(dan +1 untuk --extendedopsi yang memungkinkan Anda melihat alias seperti build-tools-21.1.0)
Petrus Repo
1
Di mana orang untuk --filterdan --extendedopsi?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
2
Saya setuju bahwa lebih baik menggunakan string daripada nomornya, yang tidak diperbaiki.
wisbucky
1
Saya sedang mencari --extendedopsi itu sehingga saya bisa menulis skrip dan menggunakannya di Continuous Integration Server saya di mana ia dapat menyegarkan sumber daya SDK itu sendiri. Tip yang bagus!
osayilgan
73

Versi 25.2.3 (dan lebih tinggi) dari Android SDK Toolspaket berisi alat baru - sdkmanager - yang menyederhanakan tugas menginstal alat-alat ini dari baris perintah.
Itu terletak di android_sdk/tools/binfolder.

Penggunaan (dari dokumentasi ):

sdkmanager packages [options]

The packagesargumen adalah jalur SDK-gaya, dibungkus dalam tanda kutip (misalnya, "build-tools;25.0.0"atau "platforms;android-25"). Anda dapat melewati beberapa jalur paket, dipisahkan dengan spasi, tetapi masing-masing harus dibungkus dengan tanda kutip masing-masing.

Contoh penggunaan (di Mac saya):

alex@mbpro:~/sdk/tools/bin$ ls ../../build-tools/  
25.0.0/   
alex@mbpro:~/sdk/tools/bin$ ./sdkmanager "build-tools;25.0.2"  
done   
alex@mbpro:~/sdk/tools/bin$ ls ../../build-tools/  
25.0.0/ 25.0.2/

Anda juga dapat menentukan berbagai opsi , misalnya untuk memaksa semua koneksi menggunakan HTTP ( --no_https), atau untuk menggunakan server proxy ( --proxy_host=addressdan--proxy_port=port ).

Untuk memeriksa opsi yang tersedia, gunakan --helpbendera. Di komputer saya (Mac), hasilnya adalah sebagai berikut:

alex@mbpro:~/sdk/tools/bin$ ./sdkmanager --help
Usage: 
  sdkmanager [--uninstall] [<common args>] \
    [--package_file <package-file>] [<packages>...]
  sdkmanager --update [<common args>]
  sdkmanager --list [<common args>]

In its first form, installs, or uninstalls, or updates packages.
    <package> is a sdk-style path (e.g. "build-tools;23.0.0" or 
             "platforms;android-23").
    <package-file> is a text file where each line is a sdk-style path
                   of a package to install or uninstall.
    Multiple --package_file arguments may be specified in combination
     with explicit paths.
In its second form (with --update), currently installed packages are
    updated to the latest version.
In its third form, all installed and available packages are printed out.

Common Arguments:
    --sdk_root=<sdkRootPath>: Use the specified SDK root instead of the SDK containing this tool
    --channel=<channelId>: Include packages in channels up to <channelId>.
                           Common channels are:
                           0 (Stable), 1 (Beta), 2 (Dev), and 3 (Canary).

    --include_obsolete: With --list, show obsolete packages in the
                        package listing. With --update, update obsolete
                        packages as well as non-obsolete.
    --no_https: Force all connections to use http rather than https.
    --proxy=<http | socks>: Connect via a proxy of the given type.
    --proxy_host=<IP or DNS address>: IP or DNS address of the proxy to use.
    --proxy_port=<port #>: Proxy port to connect to.

* If the env var REPO_OS_OVERRIDE is set to "windows",
  "macosx", or "linux", packages will be downloaded for that OS.
Alex Lipov
sumber
1
Adakah yang mendapat Warning: Unknown argument --package_file?
ulidtko
3
@ulidtko Ada bug dalam dokumentasi penggunaan. Cara yang benar adalah dengan menambahkan tanda sama dengan, misalnya --package_file=packages.txt.
Alex Lipov
Sayangnya itu tidak mempermudah tugas pemasangan. Tidak semua programmer Android melakukan pemrograman mereka di linux tanpa GUI. Beberapa dari kita melakukannya di Windows dan lebih suka UI yang berjalan seperti setiap Aplikasi Windows lainnya. Ini bergerak mundur bukannya maju
AaA
2
@ AaA Ini memang menyederhanakan tugas menginstal dari baris perintah . OP secara eksplisit menyatakan bahwa dia mencari solusi baris perintah , dan oleh karena itu komentar Anda tidak relevan dalam konteks ini.
Alex Lipov
55

Alat Bangun ADB Tidak Akan Diunduh secara otomatis, dengan perintah pembaruan android sdk --no-ui

Jadi untuk menginstal tipe Buil-Tool (dalam konsol):

android list sdk --all

Ingat nomor yang terdaftar sebelum item dan jalankan yang berikut:

android update sdk -u --all --filter <number>

perintah harus diketik di / YourFolder / android-sdk-linux / tools

Juga untuk folder jarak jauh (server dibuka oleh ssh misalnya) ketik:

**./android** list sdk --all
**./android** update sdk -u --all --filter <number>

Untuk daftar sederhana paket-paket ADB ketik terminal:

android list sdk

untuk menginstal semua paket:

android update sdk --no-ui

Atau dengan filter (koma adalah pemisah):

android update sdk --no-ui --filter 3,5,8,14
Flinbor
sumber
untuk sdks usang yang lama Anda harus menggunakan --all. misalnya pembaruan android sdk --no-ui --all --filter 27 untuk menginstal platform-8
kebetulan
karena pemasang SDK terus macet ketika saya menggunakan GUI, saya harus beralih ke baris perintah, jadi ini sangat membantu. Terima kasih.
Yvonne Aburrow
32

Sumber informasi hebat yang saya jumpai ketika mencoba menginstal semua Android SDK yang terkait dari baris perintah, adalah Dockerfile ini . Di dalam Dockerfile Anda dapat melihat bahwa penulis mengeksekusi satu perintah untuk menginstal platform toolsdan build toolstanpa interaksi lainnya. Dalam hal OP telah mengajukan, perintah akan disesuaikan dengan:

echo y | $ANDROID_HOME/tools/android update sdk --all --filter build-tools-21.1.0 --no-ui
geoand
sumber
Bagaimana jika saya tidak ingin semua paket? Hanya ingin 21.1.0 .
IgorGanapolsky
@IgorGanapolsky Mungkin Anda harus mencoba tanpa --allbendera
geoand
21

Saya baru saja bersenang-senang mendapatkan dependensi Android SDK diinstal melalui command line dan karena dokumentasi yang datang dengan alat dan online sangat kurang, saya pikir saya akan memposting apa yang saya temukan di sini.

Saya bekerja dengan android sdk r24.4.1untuk linux. Ada dua perintah yang dapat Anda jalankan untuk mendaftar paket yang tersedia:

android list sdk

dan semakin lengkap:

android list sdk --all

Nomor paket untuk paket tertentu berbeda untuk setiap perintah di atas! Misalnya, paket daftar sebelumnya API 23.1 revision 3sebagai paket #3dan yang terakhir daftar sebagai #29.

Sekarang, ada dua cara berbeda untuk menginstal menggunakan perintah android.

tools/android update sdk --no-ui --filter <package number>

dan

tools/android update sdk -u -a -t <package number>

Karena setiap perintah instalasi dapat menggunakan # paket sebagai parameter, nomor paket mana yang Anda gunakan? Setelah banyak pencarian online dan coba-coba, saya menemukan itu

android update sdk --no-ui --filter menggunakan nomor paket dari android list sdk

dan

android update sdk -u -a -t menggunakan nomor paket dari android list sdk --all

Dengan kata lain - untuk menginstal API 23.1 revision 3Anda dapat melakukan salah satu dari:

android update sdk --no-ui --filter 3

atau

android update sdk -u -a -t 29

Gila, tapi berhasil.

lps
sumber
1
-aadalah versi singkat dari --all, itulah sebabnya menggunakan nomor paket itu. ( -ukependekan dari --no-uidan -tmerupakan kependekan dari --filter).
darthmaim
Saya percaya apa yang dikatakan Ips. Google diketahui tidak memperbarui usage()teks mereka dengan kenyataan.
not2qubit
di ubuntu aku berlari: $ echo y | $ ANDROID_HOME / tools / pembaruan android sdk -u -a -t 27 Sekarang bagaimana cara mengkonfirmasi bahwa saya telah diupdate ke Android 8?
Ashish Karpe
$ ANDROID_HOME / tools / target daftar android | grep "Berdasarkan Android" Berdasarkan Android 4.0.3 (API level 15) Berdasarkan Android 4.1.2 (API level 16) Berdasarkan Android 4.2.2 (API level 17) Berdasarkan Android 4.3.1 (API level 18) Berdasarkan Android 4.4.2 (API level 19) Berdasarkan Android 4.4.2 (API level 19) Berdasarkan Android 5.0.1 (API level 21) Berdasarkan Android 5.1.1 (API level 22) Berdasarkan Android 6.0 (API level 23) Berdasarkan Android 7.0 (API level 24)
Ashish Karpe
Penyebab ketika saya berlari: $ ANDROID_HOME / tools / daftar android sdk Paket yang tersedia untuk instalasi atau pembaruan: 1 1- SDK Platform Android 8.1.0, API 27, revisi 1
Ashish Karpe
20

Sebagian besar jawaban tampaknya mengabaikan fakta bahwa Anda mungkin perlu menjalankan pembaruan di lingkungan tanpa kepala tanpa hak pengguna super, yang berarti skrip harus menjawab semua permintaan y/nlisensi secara otomatis.

Inilah contoh yang berhasil.

FILTER=tool,platform,android-20,build-tools-20.0.0,android-19,android-19.0.1

( sleep 5 && while [ 1 ]; do sleep 1; echo y; done ) \
    | android update sdk --no-ui --all \
    --filter ${FILTER}

Tidak peduli berapa banyak prompt yang Anda dapatkan, semua itu akan dijawab. while/sleepLoop ini terlihat seperti simulasi dari perintah yes , dan kenyataannya, hampir . Masalahnya yesadalah bahwa itu membanjiri stdout dengan 'y'dan hampir tidak ada penundaan antara mengirim karakter tersebut dan versi yang harus saya tangani tidak memiliki opsi batas waktu dalam bentuk apa pun. Ini akan "mencemari" stdout dan skrip akan gagal mengeluhkan input yang salah. Solusinya adalah dengan menunda antara mengirim 'y'ke stdout, dan itulah yang dilakukan oleh while/sleepkombo.

expect tidak tersedia secara default pada beberapa distro linux dan saya tidak punya cara untuk menginstalnya sebagai bagian dari skrip CI saya, jadi harus menggunakan solusi yang paling umum dan tidak ada yang lebih generik daripada skrip bash sederhana, bukan?

Sebagai soal fakta, saya membuat blog tentang hal itu ( NSBogan ), periksa untuk detail lebih lanjut di sini jika Anda tertarik.

i4niac
sumber
--semua akan menginstal semua kemungkinan sdk. Tidak ideal jika Anda ingin membatasi ke filter tertentu.
IgorGanapolsky
17

Jika Anda telah sdkmanagermenginstal (saya menggunakan MAC)

lari sdkmanager --listke daftar paket yang tersedia.

Jika Anda ingin menginstal alat membangun, salin versi yang disukai dari daftar paket yang tersedia.

Untuk menginstal menjalankan versi yang disukai

sdkmanager "build-tools;27.0.3"
Lasithds
sumber
1
Terima kasih. Berhasil! Perintah "android" sudah tidak digunakan lagi dengan Android-SDK versi terbaru, kita harus menggunakan ./sdkmanager dari direktori / tools / bin
JLavoie
8

Namun, ini terlalu lambat untuk dijalankan

Ya, saya punya masalah yang sama. Beberapa unduhan file sangat lambat (atau setidaknya sudah dalam beberapa hari terakhir). Jika Anda ingin mengunduh semuanya tidak banyak yang dapat Anda lakukan tentang itu.

Hasilnya adalah tidak ada apa pun di folder build-tools, dan yang saya inginkan adalah aapt dan apkbuilder, karena saya ingin membangun apk dari baris perintah tanpa semut.

Apakah Anda membiarkannya berjalan sampai selesai?

Satu hal yang dapat Anda lakukan adalah memfilter paket yang sedang diunduh menggunakan -t sakelar.

Sebagai contoh:

tools/android update sdk --no-ui -t platform-tool

Ketika saya mencoba ini beberapa hari yang lalu, saya mendapatkan versi 18.0.0 dari alat bantu yang diinstal. Untuk beberapa alasan, versi terbaru 18.0.1 tidak disertakan oleh filter ini dan satu-satunya cara untuk mendapatkannya adalah menginstal semuanya dengan --allsakelar.

Dan Dyer
sumber
2
Jalankan ini untuk mendapatkan filter yang tersedia: "pembaruan android sdk -h" ... Filter yang membatasi pembaruan untuk jenis paket tertentu dalam bentuk daftar [platform, sistem-gambar, alat, platform yang dipisahkan koma] -tool, doc, sample, sumber]. Ini juga menerima pengidentifikasi yang dikembalikan oleh 'list sdk --extended'.
aleb
6

Saya lebih suka meletakkan skrip yang menginstal dependensi saya

Sesuatu seperti:

#!/usr/bin/env bash
#
# Install JUST the required dependencies for the project.
# May be used for ci or other team members.
#

for I in android-25 \
         build-tools-25.0.2  \
         tool \
         extra-android-m2repository \
         extra-android-support \
         extra-google-google_play_services \
         extra-google-m2repository;

 do echo y | android update sdk --no-ui --all --filter $I ; done

https://github.com/caipivara/android-scripts/blob/master/install-android-dependencies.sh

Daniel Gomez Rico
sumber
Terima kasih, tolong selamatkan saya banyak waktu.
utzcoz
4

Saya baru saja mengalami masalah ini, jadi saya akhirnya menulis solusi 1 bash kotor dengan membaca dan menguraikan daftar alat yang bisa digunakan:

 tools/android update sdk -u -t $(android list sdk | grep 'Android SDK Build-tools' | sed 's/ *\([0-9]\+\)\-.*/\1/')
Aurélien Lambert
sumber
Saya beralih proyek saya untuk bermain layanan, meminta lisensi lebih dari sekadar membangun alat, jadi solusi ini sangat terbatas.
nurettin
Terasa jauh lebih deterministik daripada indeks yang dapat berubah seiring waktu seiring perkembangan versi ...
Augustin Riedinger
4

Terinspirasi dari jawaban oleh @ i4niac & @ Aurélien Lambert, inilah yang saya temukan

csv_update_numbers=$(./android list sdk --all | grep 'Android SDK Build-tools' | grep -v 'Obsolete' | sed 's/\(.*\)\- A.*/\1/'|sed '/^$/d'|sed -e 's/^[ \t]*//'| tr '\n' ',')
csv_update_numbers_without_trailing_comma=${csv_update_numbers%?}

( sleep 5 && while [ 1 ]; do sleep 1; echo y; done ) \
    | ./android update sdk --all -u -t $csv_update_numbers_without_trailing_comma

Penjelasan

  • dapatkan daftar angka yang dipisahkan koma yang merupakan indeks paket alat bangun di hasil android list sdk --allperintah (Mengabaikan paket usang).
  • terus melempar 'y's ke terminal setiap beberapa milidetik untuk menerima lisensi.
Vinay W
sumber
4

Unduh SDK android dari developer.android.com (saat ini file sebesar 149mb untuk windows OS). Perlu dicatat bahwa android telah menghapus GUI sdkmanager tetapi memiliki versi baris perintah dari sdkmanager di folder bin yang terletak di dalam folder tools.

  1. Ketika di dalam folder bin, tahan tombol shift, klik kanan, lalu pilih buka command line di sini. Shift + klik kanan >> buka baris perintah di sini.
  2. Ketika baris perintah terbuka, ketik sdkmanagerklik enter.
  3. Kemudian jalankan type sdkmanager(spasi), double hyphen ( --), daftar tipe sdkmanager --list (ini mencantumkan semua paket di manajer SDK)
  4. Ketik sdkmanager (spasi) lalu nama paket, tekan enter. Misalnya. sdkmanager platform-tools (tekan enter) Ini akan memuat perjanjian lisensi. Dengan opsi (y / n). Masukkan y untuk menerima dan itu akan mengunduh paket yang Anda tentukan.

Untuk referensi lebih lanjut ikuti dokumen resmi di sini

Saya harap ini membantu. :)

Filemon uchechukwu
sumber
4

Perintah "android" sudah tidak digunakan lagi.

Untuk alat baris perintah, gunakan alat / bin / sdkmanager dan alat / bin / avdmanager

Jika Anda tidak memerlukan Android Studio, Anda dapat mengunduh alat-alat baris perintah Android dasar dari developer.android.com di bagian Alat baris perintah saja .

dari CLI itu harus agak seperti:

curl --output sdk-tools-linux.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip

atau

wget --output-document sdk-tools-linux.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip

Setelah itu cukup bongkar arsip ke folder target

unzip sdk-tools-linux.zip

Dan sekarang kita dapat menginstal semua yang Anda butuhkan ...

./tools/bin/sdkmanager --install 'build-tools;29.0.2' 'platform-tools' 'platforms;android-29' 'tools'

Anda bisa mendapatkan daftar paket lengkap menggunakan perintah ./tools/bin/sdkmanager --list

Beberapa paket memerlukan penerimaan perjanjian lisensi. Anda dapat menerimanya secara interaktif atau meneruskan "y" ke aliran input, seperti ini (dua perjanjian dalam kasus):

echo -ne "y\ny" | ./tools/bin/sdkmanager --install 'system-images;android-29;default;x86_64'

Dan tentu saja, untuk kenyamanan Anda, Anda dapat mengekspor variabel seperti ANDROID_HOME atau ANDROID_SDK_ROOT (termasuk melakukannya di ~ / .profile atau ~ / .bash_profile) atau tambal PATH variabel - semua ini atas kebijakan Anda.

Contoh skrip:

mkdir /opt/android-sdk
cd /opt/android-sdk
curl --output sdk-tools-linux.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip sdk-tools-linux.zip
echo -ne "y" | ./tools/bin/sdkmanager --install 'build-tools;29.0.2' 'platform-tools' 'platforms;android-29' 'tools'

Persyaratan: curl (atau wget) dan unzip

Penyelesaian masalah:

jika Anda melihat Warning: Could not create settings, Anda harus memiliki toolsdirektori di dalam cmdline-toolsdirektori di dalam ANDROID_HOME (buat jika diperlukan dengan nama persis ini) lihat alat baris perintah Android sdkmanager selalu menunjukkan: Peringatan: Tidak dapat membuat pengaturan

Максим Шатов
sumber
2

Alat Bangun tidak dapat diunduh secara otomatis secara default seperti yang dikatakan Nate di https://stackoverflow.com/a/19416222/1104031 postingan.

Tapi saya menulis alat kecil yang membuat segalanya untuk Anda

Saya menggunakan alat "expect" sebagai danb di https://stackoverflow.com/a/17863931/1104031 postingan. Anda hanya perlu android-sdk dan python27, expect.

Script ini akan menginstal semua alat build, semua sdks dan semua yang Anda butuhkan untuk build otomatis:

import subprocess,re,sys

w = subprocess.check_output(["android", "list", "sdk", "--all"])
lines = w.split("\n")
tools = filter(lambda x: "Build-tools" in x, lines)
filters = []
for tool in tools:
  m = re.search("^\s+([0-9]+)-", tool)
  tool_no = m.group(1)
  filters.append(tool_no)

if len(filters) == 0:
  raise Exception("Not found build tools")


filters.extend(['extra', 'platform', 'platform-tool', 'tool'])

filter = ",".join(filters)

expect= '''set timeout -1;
spawn android update sdk --no-ui --all --filter %s;
expect {
  "Do you accept the license" { exp_send "y\\r" ; exp_continue }
  eof
}''' % (filter)

print expect

ret = subprocess.call(["expect", "-c", expect])
sys.exit(ret)
Jacek Marchwicki
sumber
Bagaimana dengan echo "yes" | ./android update sdk --no-https --no-ui --filter 1,6?
schemacs
1
Perbaiki saya jika saya salah tetapi sepertinya skrip ini mengunduh ulang semua setiap kali dijalankan. Saya mencoba dengan -u param tetapi sepertinya tidak berhasil: /
gbero
1

Seperti yang dinyatakan dalam respons lain, alat bangun membutuhkan --allbendera yang harus dipasang. Anda juga lebih baik menggunakan -tflag filter untuk menghindari menginstal SEMUA paket tetapi tidak ada cara untuk memfilter semua alat build.

Sudah ada permintaan fitur untuk dua titik ini di pelacak bug AOSP. Jangan ragu untuk memilih mereka, ini mungkin membuat mereka terjadi suatu hari:

Sylfo
sumber
1

Saya mencoba ini untuk memperbarui semua, dan itu berhasil!

echo y | $ANDROID_HOME/tools/android update sdk --no-ui
Ting
sumber
0

Mencoba

1. Daftar semua paket

android list sdk --all

2. Instal paket menggunakan perintah berikut

android update sdk -u -a -t package1, package2, package3 //comma seperated packages obtained using list command 
Pehlaj - Pengembang Aplikasi Seluler
sumber
-1

pembaruan android SDK

Perintah ini akan memperbarui dan menginstal semua rilis terbaru untuk Alat SDK, Alat Bangun, alat platform SDK.

Ini berhasil bagi saya.

Chirag
sumber