Nach dem Update auf das Android Gradle-Plugin 3.6.0
(veröffentlicht am 24. Februar 2020) scheiterten mehrere Projekte unabhängig voneinander mit:
No version of NDK matched the requested version 20.0.5594570. Versions available locally: 21.0.6113669
Es ist ganz einfach, dies lokal zu "beheben", indem die ältere erwartete ndk-Version installiert wird:
sdkmanager 'ndk;20.0.5594570'
Meine Frage ist jedoch: Wo und wie wird diese ältere Version angegeben? Und wie aktualisiere ich es, damit es mit der neuesten Version übereinstimmt 21.0.6113669
?
android
android-ndk
android-gradle-plugin
android-sdk-tools
android-sdk-manager
friederbluemle
quelle
quelle
Antworten:
Option 1:
Sie können einfach Ihr lokal installiertes NDK im Dialogfeld Projektstruktur auswählen
Sie können den Projektstrukturdialog öffnen, indem Sie auf klicken
File > Project Structure...
oder die Hotkeys drückenCTRL + ALT + SHIFT + S
(unter Windows).Sobald das Dialogfeld Projektstruktur geöffnet ist, gehen Sie zu SDK-Speicherort und wählen Sie Ihre lokal installierte Version von NDK unter Android NDK-Speicherort aus . Normalerweise wird dies irgendwo in Ihrem Benutzerordner installiert,
\AppData\Local\Android\Sdk\ndk\%ndk version%
zumindest für Windows.Screenshot des Dialogfelds "Projektstruktur" - aus Android Studio 3.6 Build # AI-192.7142.36.36.6200805, erstellt am 12. Februar 2020
Option 2:
Wenn Sie Option 1 ausführen, wird Ihre
local.properties
Datei für Sie bearbeitet und funktioniert in den meisten Fällen. Wenn Sie jedoch auf allen Computern, mit denen Sie das Projekt erstellen, eine konsistente NDK-Version verwenden möchten, können Sie diese gemäß diesem offiziellen Handbuch über Ihr Modul-Gradle-Skript konfigurieren. Fügen Sie einfach diendkVersion
in Ihrem Modul gradle Skriptandroid{}
Block wie so.Ersetzen der Zeichenfolge zwischen den doppelten Anführungszeichen durch die NDK-Version, die Sie verwenden möchten
Option 3:
Wenn Sie möchten, dass alle auf einem bestimmten Computer erstellten Projekte dieselbe NDK-Version verwenden, können Sie auch die
ANDROID_NDK_HOME
Umgebungsvariable mit dem Pfad zum NDK-Ordner festlegen .quelle
$NDK_LATEST_VERSION
Ich stoße auch darauf
Option 1:
Sie können einfach Ihr lokal installiertes NDK im Projektstrukturdialog auswählen. Funktioniert !
Gilt aber nur für lokale Builds, und ich brauche eine Lösung für CI
Option 2:
Es funktioniert nur, wenn Sie es in jedem verwendeten Modul angeben
Hier scheint es mit dieser Änderung nicht zu funktionieren https://github.com/hannesa2/panoramagl/pull/17/checks https://github.com/hannesa2/panoramagl/pull/17/files#diff-cff4e8c294a5dc5e76308662ae1ddcacR6-R7
Option 3:
funktioniert auch!
quelle
21.0.6113669
aber die Build-Protokolle besagen, dass die angeforderte Version ist20.0.5594570
. Können Sie nach einerndk_locator_record.json
Datei suchen ? Diese Datei enthält Informationen darüber, wie die angeforderte ndk-Version aufgelöst wurde.Ich habe das gleiche Problem. Ich habe es über den SDK-Manager unter SDK-Tools gelöst, auf
Show Package Details
NDK (nebeneinander) geklickt und dann gescrollt und die gewünschte Version angekreuzt und angewendet. Siehe Bild unten:Meine Frage an alle ist, warum brauchen wir das jetzt für Projekte, für die das NDK nicht erforderlich ist? Wie sich herausstellt, ist das NDK eine bereits vorhandene Anforderung in dem Projekt, an dem ich für eine Abhängigkeit arbeite!
quelle
Ändern Sie Ihre Klassenpfadversion in Ihrem Build.gradle auf Projektebene auf 3.5.0.
Ich habe das gleiche Problem und es wurde gelöst.
quelle
3.6.0
(oder später) aufgetreten ist . Übrigens müssen Sie kein Downgrade auf durchführen3.5.0
. Die Version3.5.3
funktioniert auch gut.Ich hatte das gleiche Problem, nach einer Weile fand ich eine vorübergehende Lösung.
ndk
Ordner umbenennen inndk-bundle
. Gehen Sie in Ihren Projekten zurlocal.properties
Datei und fügen Sie diese Zeile vorsdk.dir
:es gehört mir:
Ich hoffe es hilft dir
quelle
ndk.dir=G\:\\...\\Sdk\\ndk\\21.0.6113669
hat bei mir funktioniert.Nach dem Upgrade auf Gradle: 3.6.0 (oder höher). Versuchen Sie, die Ordner ndk und ndk-bundle in C: \ Users \ <Benutzer> \ AppData \ Local \ Android \ Sdk umzubenennen oder zu löschen
Das Guthaben geht an: https://github.com/gradle/gradle/issues/12440#issuecomment-601214647
quelle