Po aktualizacji do wtyczki Android Gradle 3.6.0
(wydanej 24 lutego 2020 r.) Kilka projektów samodzielnie zaczęło kończyć się niepowodzeniem:
No version of NDK matched the requested version 20.0.5594570. Versions available locally: 21.0.6113669
Lokalnie można to „naprawić”, instalując starszą oczekiwaną wersję ndk:
sdkmanager 'ndk;20.0.5594570'
Moje pytanie brzmi jednak: gdzie i jak określono tę starszą wersję? Jak mogę go zaktualizować, aby pasował do najnowszej wersji 21.0.6113669
?
android
android-ndk
android-gradle-plugin
android-sdk-tools
android-sdk-manager
friederbluemle
źródło
źródło
Odpowiedzi:
Opcja 1:
Możesz po prostu wybrać lokalnie zainstalowany NDK w oknie dialogowym Struktura projektu
Możesz otworzyć okno dialogowe Struktura projektu, klikając
File > Project Structure...
lub naciskając klawisze skrótuCTRL + ALT + SHIFT + S
(w systemie Windows)Po otwarciu okna dialogowego Struktura projektu przejdź do lokalizacji SDK i wybierz lokalnie zainstalowaną wersję NDK pod Android NDK Location . Zazwyczaj jest to instalowane gdzieś w folderze użytkownika, a
\AppData\Local\Android\Sdk\ndk\%ndk version%
przynajmniej w systemie Windows.Zrzut ekranu okna dialogowego Struktura projektu - z Android Studio 3.6 Kompilacja # AI-192.7142.36.36.6200805, zbudowany 12 lutego 2020 r.
Opcja 2:
Wykonanie opcji 1 spowoduje edycję
local.properties
pliku i będzie działać w większości przypadków. Ale jeśli chcesz używać spójnej wersji NDK na wszystkich komputerach, na których budujesz projekt, zgodnie z tym oficjalnym przewodnikiem , możesz skonfigurować go ze skryptu oceny modułów. Po prostu dodajndkVersion
w ten sposób blok skryptu oceny modułuandroid{}
.zastępując ciąg między podwójnymi cudzysłowami wersją NDK, której chcesz użyć
Opcja 3:
Jeśli chcesz, aby wszystkie projekty zbudowane na konkretnym komputerze korzystały z tej samej wersji NDK, możesz również ustawić
ANDROID_NDK_HOME
zmienną środowiskową ze ścieżką do folderu NDK.źródło
$NDK_LATEST_VERSION
Na to też wpadam
Opcja 1:
Możesz po prostu wybrać lokalnie zainstalowany NDK w oknie dialogowym Struktura projektu działa!
Ale dotyczy to tylko lokalnych kompilacji i potrzebuję rozwiązania dla CI
Opcja 2:
Działa to tylko wtedy, gdy określisz to w każdym używanym module
Tutaj wydaje się, że nie działa https://github.com/hannesa2/panoramagl/pull/17/checks z tą zmianą https://github.com/hannesa2/panoramagl/pull/17/files#diff-cff4e8c294a5dc5e76308662ae1ddcacR6-R7
Opcja 3:
też działa!
źródło
21.0.6113669
ale dzienniki kompilacji mówią, że żądana wersja to20.0.5594570
. Czy możesz poszukaćndk_locator_record.json
pliku? Ten plik zawiera informacje o sposobie rozwiązania żądanej wersji ndk.Mam ten sam problem. Rozwiązałem go za pomocą menedżera SDK w Narzędziach SDK, kliknij,
Show Package Details
a następnie przewiń w NDK (obok siebie) i zaznacz i zastosuj potrzebną wersję. Zobacz zdjęcie poniżej:Moje pytanie brzmi: dlaczego potrzebujemy tego teraz w przypadku projektów, które nie wymagają NDK? Jak się okazuje, NDK jest wcześniej istniejącym wymogiem w projekcie, nad którym pracuję dla zależności!
źródło
Zmień wersję ścieżki klasy na 3.5.0 w build.gradle, na poziomie projektu.
Mam ten sam problem i problem został rozwiązany.
źródło
3.6.0
(lub później). Przy okazji, nie musisz obniżać wersji do3.5.0
. Wersja3.5.3
działa również dobrze.miałem ten sam problem, po chwili znalazłem tymczasowe rozwiązanie. zmień nazwę
ndk
folderu nandk-bundle
. w swoich projektach przejdź dolocal.properties
pliku i dodaj ten wiersz przedsdk.dir
:To jest moje:
mam nadzieję, że ci to pomoże
źródło
ndk.dir=G\:\\...\\Sdk\\ndk\\21.0.6113669
działał dla mnie.Po uaktualnieniu do stopnia: 3.6.0 (lub nowszego). Spróbuj zmienić nazwę lub usunąć foldery pakietu ndk i ndk znajdujące się w C: \ Users \ <użytkownik> \ AppData \ Local \ Android \ Sdk
Kredyt trafia do: https://github.com/gradle/gradle/issues/12440#issuecomment-601214647
źródło