Saya menggunakan alat baris perintah baru Android karena repositori sdk-tools lama Android tidak tersedia lagi. Jadi saya mengubah gitlab-ci saya untuk memuat commandlintools. Tetapi ketika saya mencoba menjalankannya saya mendapatkan kesalahan berikut:
Warning: Could not create settings
java.lang.IllegalArgumentException
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.<init>(SdkManagerCliSettings.java:428)
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:152)
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:134)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:57)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Saya sudah mencoba menjalankan perintah tersebut dengan tangan, tetapi saya mendapatkan kesalahan yang sama. Juga jika saya menjalankan sdkmanager --version
, kesalahan yang sama terjadi. Gitlab-ci saya terlihat seperti:
image: openjdk:9-jdk
variables:
ANDROID_COMPILE_SDK: "29"
ANDROID_BUILD_TOOLS: "29.0.3"
ANDROID_SDK_TOOLS: "6200805"
before_script:
- apt-get --quiet update --yes
- apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
- wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip
- unzip -d android-sdk-linux android-sdk.zip
- echo y | android-sdk-linux/tools/bin/sdkmanager "platform-tools" "platforms;android-${ANDROID_COMPILE_SDK}" >/dev/null
#- echo y | android-sdk-linux/tools/bin/sdkmanager "platform-tools" >/dev/null
- echo y | android-sdk-linux/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}" >/dev/null
- export ANDROID_HOME=$PWD/android-sdk-linux
- export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/
- chmod +x ./gradlew
# temporarily disable checking for EPIPE error and use yes to accept all licenses
- set +o pipefail
- yes | android-sdk-linux/tools/bin/sdkmanager --licenses
- set -o pipefail
stages:
- build
- test
lintDebug:
stage: build
script:
- ./gradlew -Pci --console=plain :app:lintDebug -PbuildDir=lint
assembleDebug:
stage: build
script:
- ./gradlew assembleDebug
artifacts:
paths:
- app/build/outputs/
debugTests:
stage: test
script:
- ./gradlew -Pci --console=plain :app:testDebug
echo y
perintah.sdkmanager --sdk_root=${ANDROID_HOME} "tools"
bit melakukannya untuk saya - terima kasih!Bagi mereka yang kesulitan menginstal Alat Baris Perintah Android untuk Appium di Windows 10 / x64 lakukan saja hal berikut:
sumber
cmdline-tools
adalah suatu keharusan, namunlatest
tidak wajib. Dan jalur (atau nama)cmdline-tools
berasal dari Android SDK itu sendiri. Anda dapat menjalankan perintah inisdkmanager --sdk_root=${ANDROID_HOME} --list
, di mana hasilnya termasuk "cmdline-tools; 1.0 | 1.0 | Android SDK Command-line Tools"Mengunduh cmdline-tools baru dari situs web Pengembang Android membutuhkan struktur direktori berikut untuk dihormati.
sumber
Alih-alih menyampaikan argumen
--sdk_root
untuk setiap eksekusi perintah tunggal, mari selami alasan sebenarnya.Mulai dari Android SDK Command-line Tools 1.0.0 (6200805) , berbeda dengan Android SDK 26.1.1 (4333796) ,
tools
hierarki direktori telah diubah. Sebelumnya ditempatkan tepat di dalamANDROID_HOME
, sekarang masih dinamaitools
(satu-satunya hal yang akan Anda dapatkan setelah membongkar file zip commandlinetools yang diunduh ), tetapi berbeda, Anda harus meletakkannya di dalam direktori yang disebutcmdline-tools
pada Anda sendiri. Nama inicmdline-tools
berasal dari nama paketnya, di mana Anda bisa mendapatkan dari daftar perintah paketsdkmanager --list
, yang hasilnya termasukcmdline-tools;1.0 | 1.0 | Android SDK Command-line Tools
.Membungkus
tools
direktori di dalamcmdline-tools
direktori akan membuatnya berfungsi, dan membantu Anda menyingkirkan yang menjengkelkan--sdk_root
argumen yang . Tetapi bagaimana dengan bagian lainnya?Nah, itu yang harus Anda ubah. Izinkan saya menjelaskan lebih lanjut.
sdkmanager
tinggal di dalamcmdline-tools/tools/bin
, Anda sebaiknya mengaturPATH
variabel lingkungancmdline-tools
seharusnya tidak ditetapkan sebagaiANDROID_HOME
. Karena nanti, ketika memperbarui Android SDK, atau menginstal lebih banyak paket, paket lain akan ditempatkan di bawahANDROID_HOME
, tetapi tidak di bawahcmdline-tools
.ANDROID_HOME
struktur direktori akan terlihat seperti di bawah ini, terdiri dari beberapa sub-direktori:build-tools
,cmdline-tools
,emulator
,licenses
,patcher
,platform-tools
,platforms
,system-images
. Anda dapat dengan mudah menunjukkan hal itubuild-tools
dancmdline-tools
saudara, semua duduk di dalam orangtuaANDROID_HOME
.Biarkan saya rekap dengan cara sederhana:
ANDROID_HOME
(seperti sebelumnya)cmdline-tools
, yang ada di dalamnyaANDROID_HOME
$ANDROID_HOME/cmdline-tools/tools/bin
variabel direktori ke lingkunganPATH
, sehingga sistem tahu ke mana harus mencarisdkmanager
sumber
Mendapat masalah yang sama, datang ke sini oleh Google. Menurut Arsip AndroidStudio , hari ini adalah rilis 4.1. Saya kira itu bukan kebetulan.
Ini panduan sama sekali tidak berhubungan memiliki hardlink untuk versi lama dari SDK-alat untuk linux . Anda dapat mengubah url ke windows atau mac untuk OS lain. Saya akan menggunakannya sebagai perbaikan terbaru untuk saat ini.
(yang seharusnya menjadi komentar bukan solusi)
sumber
Sdkmanager mencoba untuk mencari jalan android-sdk yang berbasis di mana ia dibongkar, tanpa menggunakan variabel lingkungan, seperti ANDROID_SDK_ROOT. Tapi itu menjadi lebih buruk, karena memiliki folder induk kode keras bernama cmdline-tools dan jika Anda unzip commandlinetools di dalam folder dengan nama lain, itu tidak berfungsi, memaksa kita untuk menggunakan parameter sdk_root untuk memberi makan variabel dalam dengan benar.
Jadi, dengan itu dalam pikiran kita dapat menggunakan pendekatan berikut untuk menyelesaikan ini.
Saya akan berasumsi bahwa kita menggunakan OS Ubuntu, jadi jika tidak, Anda harus menyesuaikan beberapa instruksi itu.
Instal Android-SDK.
Setelah instalasi, Anda akan memiliki folder bernama android-sdk di / usr / lib
Buat folder bernama cdmline-tools di dalam folder android-SDK
Buka paket file yang baru saja Anda unduh di dalam / usr / lib / android-sdk / cmdline-tools
Buka dir home dan edit profil Anda
Buat variabel ANDROID_SDK_ROOT
Letakkan folder sdkmanager di jalur Anda
Muat ulang profil Anda
Lari
Anda akan melihat versi yang dicetak di terminal Anda.
sumber
Saya menemukan solusi untuk menggunakan alat baris perintah terbaru mengikuti langkah-langkah berikut:
1 - Mengekstraksi alat Command-line ke dalam folder dengan struktur ini: misalnya:
$HOME/Development/android/cmdline-tools/latest
(folder ini harus mengandung lib , bin , notice.txt dan source.properties )2 - Menentukan ANDROID_HOME sebagai variabel lingkungan:
3 - Memuatnya di PATH :
sumber
cmdline-tools
adalah suatu keharusan, namunlatest
tidak diperlukan.Saya ingin berbagi pengalaman.
Pada awalnya saya mencoba menjelaskan mengapa struktur direktori harus terlihat seperti yang ditunjukkan dalam jawaban ini - https://stackoverflow.com/a/60460681/1758733 . https://stackoverflow.com/users/668455/tristan meminta penjelasan beberapa kali jadi harap saya akan mengklarifikasi situasi dengan percobaan berikutnya:
Seseorang mungkin mengalami masalah lain - Terjebak pada ".android / repositori.cfg tidak dapat dimuat."
Masalah & fakta lain:
Untuk meringkas resep berikut untuk pengembangan dengan Qt dapat dibuat:
sumber
Halaman ini dari dokumentasi Unity 2018 juga memiliki penjelasan yang baik untuk menyelesaikan masalah ini, termasuk poin-poin seperti:
https://docs.unity3d.com/2018.4/Documentation/Manual/android-sdksetup.html
sumber
Ini terjadi pada saya ketika mengunduh alat baris perintah mandiri (
commandlinetools-mac-6200805_latest
) pada Mac baru.Berdasarkan semua jawaban di sini, saya bisa membuatnya bekerja seperti ini
Dokumen untuk
--sdk_root
opsi mengatakan "Gunakan root SDK yang ditentukan dan bukan SDK yang berisi alat ini ". Ini membuat saya berpikir bahwa, meskipun dikirimkan secara mandiri, alat ini berharap menjadi bagian dari bundel tempat SDK diinstal juga.sumber
Persyaratan pertama untuk menginstal SDK (Metode apa saja) adalah menginstal Java & mengatur jalur JAVA_HOME .
Kemudian, alat baris perintah SDK memerlukan jalur instalasi yang tanpanya NullPointerException melempar.
Untuk mengatasinya, cukup lewati jalur di mana Anda ingin menginstal SDK dengan argumen "--sdk_root"
Eg. sdkmanager.bat "platform-tools" "platform; android-" --sdk_root =
sumber