Setelah memperbarui ke plugin Android Gradle 3.6.0
(dirilis 24 Februari 2020), beberapa proyek mulai gagal dengan:
No version of NDK matched the requested version 20.0.5594570. Versions available locally: 21.0.6113669
Cukup mudah untuk "memperbaiki" ini secara lokal dengan menginstal versi ndk yang diharapkan:
sdkmanager 'ndk;20.0.5594570'
Namun, pertanyaan saya adalah: Di mana dan bagaimana versi yang lebih lama ini ditentukan? Dan bagaimana cara memperbaruinya sehingga cocok dengan versi terbaru 21.0.6113669
?
android
android-ndk
android-gradle-plugin
android-sdk-tools
android-sdk-manager
friederbluemle
sumber
sumber
Jawaban:
Pilihan 1:
Anda cukup memilih NDK yang dipasang secara lokal di Dialog Struktur Proyek
Anda dapat membuka Dialog Struktur Proyek dengan mengklik
File > Project Structure...
atau dengan menekan tombol cepatCTRL + ALT + SHIFT + S
(di windows)Setelah Dialog Struktur Proyek terbuka, buka Lokasi SDK dan pilih versi NDK Anda yang terinstal secara lokal di bawah Lokasi NDK Android . Biasanya ini dipasang di suatu tempat di folder pengguna Anda maka
\AppData\Local\Android\Sdk\ndk\%ndk version%
setidaknya untuk Windows.Tangkapan layar dialog Struktur Proyek - dari Android Studio 3.6 Build # AI-192.7142.36.36.6200805, dibangun pada 12 Februari 2020
Pilihan 2:
Pilihan melakukan 1 akan mengedit
local.properties
file Anda untuk Anda dan akan bekerja dalam banyak kasus. Tetapi jika Anda ingin menggunakan versi NDK yang konsisten pada semua mesin yang Anda bangun proyeknya, menurut panduan resmi ini , Anda dapat mengonfigurasinya dari skrip gradle modul Anda. Cukup tambahkanndkVersion
di blok skrip modul gradle modul Andaandroid{}
seperti itu.mengganti string antara tanda kutip ganda dengan versi NDK yang ingin Anda gunakan
Opsi 3:
Jika Anda ingin semua proyek yang dibangun pada mesin tertentu menggunakan versi NDK yang sama, Anda juga dapat mengatur
ANDROID_NDK_HOME
variabel lingkungan dengan path ke folder NDK.sumber
$NDK_LATEST_VERSION
Saya juga mengalami hal ini
Pilihan 1:
Anda cukup memilih NDK yang Anda instal secara lokal di karya Struktur Dialog Proyek !
Tetapi hanya valid untuk build lokal, dan saya butuh solusi untuk CI
Pilihan 2:
Ini hanya berfungsi, ketika Anda menentukannya di setiap modul yang digunakan
Di sini tampaknya tidak berfungsi https://github.com/hannesa2/panoramagl/pull/17/checks dengan perubahan ini https://github.com/hannesa2/panoramagl/pull/17/files#diff-cff4e8c294a5dc5e76308662ae1ddcacR6-R7-R7
Opsi 3:
bekerja juga!
sumber
21.0.6113669
tetapi log pembangunan mengatakan versi yang diminta20.0.5594570
. Bisakah Anda mencarindk_locator_record.json
file? File itu memiliki informasi tentang cara menyelesaikan versi ndk yang diminta.Saya memiliki masalah yang sama. Saya menyelesaikannya melalui manajer SDK di bawah Alat SDK, klik
Show Package Details
dan kemudian gulir di bawah NDK (Berdampingan) dan centang dan terapkan versi yang Anda butuhkan. Lihat gambar di bawah ini:Pertanyaan saya untuk siapa pun adalah, mengapa kita membutuhkan ini sekarang untuk proyek-proyek yang tidak memerlukan NDK? Ternyata NDK adalah persyaratan yang sudah ada sebelumnya dalam proyek saya bekerja untuk ketergantungan!
sumber
Ubah versi classpath Anda ke 3.5.0 di dalam build.gradle Anda, level proyek.
Saya memiliki masalah yang sama dan diselesaikan.
sumber
3.6.0
(atau lebih baru). Btw, Anda tidak perlu downgrade ke3.5.0
. Versi juga3.5.3
berfungsi dengan baik.Saya memiliki masalah yang sama, setelah beberapa saat saya menemukan solusi sementara. ganti nama
ndk
folder menjadindk-bundle
. di proyek Anda bukalocal.properties
file dan tambahkan baris ini sebelumnyasdk.dir
:ini milikku:
Saya harap ini membantu Anda
sumber
ndk.dir=G\:\\...\\Sdk\\ndk\\21.0.6113669
bekerja untuk saya.Setelah meningkatkan ke gradle: 3.6.0 (atau lebih baru). Coba ganti nama atau hapus folder bundel ndk dan ndk yang terletak di C: \ Users \ <user> \ AppData \ Local \ Android \ Sdk
Kredit jatuh ke: https://github.com/gradle/gradle/issues/12440#issuecomment-601214647
sumber