Après la mise à jour du plugin Android Gradle 3.6.0
(publié le 24 février 2020), plusieurs projets ont commencé à échouer indépendamment avec:
No version of NDK matched the requested version 20.0.5594570. Versions available locally: 21.0.6113669
Il est assez simple de "corriger" cela localement en installant l'ancienne version attendue de ndk:
sdkmanager 'ndk;20.0.5594570'
Cependant, ma question est: où et comment cette ancienne version est-elle spécifiée? Et comment le mettre à jour pour qu'il corresponde à la dernière version 21.0.6113669
?
android
android-ndk
android-gradle-plugin
android-sdk-tools
android-sdk-manager
friederbluemle
la source
la source
Réponses:
Option 1:
Vous pouvez simplement sélectionner votre NDK installé localement dans la boîte de dialogue Structure du projet
Vous pouvez ouvrir la boîte de dialogue Structure du projet en cliquant
File > Project Structure...
ou en appuyant sur les touches de raccourciCTRL + ALT + SHIFT + S
(sous Windows)Une fois la boîte de dialogue Structure du projet ouverte, accédez à Emplacement du SDK et sélectionnez votre version localement installée de NDK sous Emplacement NDK Android . Généralement, cela est installé quelque part dans votre dossier utilisateur, puis
\AppData\Local\Android\Sdk\ndk\%ndk version%
au moins pour Windows.Capture d'écran de la boîte de dialogue Structure du projet - à partir d'Android Studio 3.6 Build # AI-192.7142.36.36.6200805, construit le 12 février 2020
Option 2:
Faire l'option 1 modifiera votre
local.properties
fichier pour vous et fonctionnera dans la plupart des cas. Mais si vous souhaitez utiliser une version NDK cohérente sur toutes les machines avec lesquelles vous construisez le projet, selon ce guide officiel , vous pouvez le configurer à partir de votre script gradle de module. Ajoutez simplement lendkVersion
dans le bloc de votre script gradle de moduleandroid{}
comme ceci.remplacer la chaîne entre les guillemets doubles par la version NDK que vous souhaitez utiliser
Option 3:
Si vous souhaitez que tous les projets construits sur une machine particulière utilisent la même version NDK, vous pouvez également définir
ANDROID_NDK_HOME
une variable d'environnement avec le chemin d'accès au dossier NDK.la source
$NDK_LATEST_VERSION
android.ndkVersion
est autre chose que le dernier NDK. Le fait d'avoir une «dernière» valeur réelle a des questions avec des réponses non évidentes. La dernière version doit-elle indiquer la dernière version stable, ou simplement la dernière version disponible? Dernière chose sur le disque ou dernière disponible sur le SDK? À quelle fréquence la version doit-elle être vérifiée? Comment vous assurez-vous que les anciennes révisions de votre projet restent constructibles?Je rencontre ça aussi
Option 1:
Vous pouvez simplement sélectionner votre NDK installé localement dans la boîte de dialogue Structure de projet fonctionne!
Mais n'est valable que pour les versions locales, j'ai besoin d'une solution pour CI
Option 2:
Cela ne fonctionne que lorsque vous le spécifiez dans chaque module utilisé
Ici, il ne semble pas fonctionner https://github.com/hannesa2/panoramagl/pull/17/checks avec ce changement https://github.com/hannesa2/panoramagl/pull/17/files#diff-cff4e8c294a5dc5e76308662ae1ddcacR6-R7
Option 3:
fonctionne aussi!
la source
21.0.6113669
mais les journaux de build indiquent que la version demandée est20.0.5594570
. Pouvez-vous rechercher unndk_locator_record.json
fichier? Ce fichier contient des informations sur la façon dont il a résolu la version ndk demandée.J'ai le même problème. Je l'ai résolu via le gestionnaire de SDK sous SDK Tools, cliquez sur
Show Package Details
puis faites défiler sous NDK (côte à côte) et cochez et appliquez la version dont vous avez besoin. Voir l'image ci-dessous:Ma question pour tout le monde est la suivante: pourquoi avons-nous besoin de cela maintenant pour des projets qui ne nécessitent pas le NDK? Il s'avère que le NDK est une exigence préexistante dans le projet sur lequel je travaille pour une dépendance!
la source
Changez votre version de chemin de classe en 3.5.0 dans votre build.gradle, niveau projet.
J'ai le même problème et il a résolu.
la source
3.6.0
(ou ultérieure). Btw, vous n'avez pas besoin de rétrograder3.5.0
. La version3.5.3
fonctionne également très bien.j'ai eu le même problème, après un certain temps, j'ai trouvé une solution temporaire. renommer le
ndk
dossier enndk-bundle
. dans vos projets allez dans lelocal.properties
fichier et ajoutez cette ligne avantsdk.dir
:c'est à moi:
j'espère que cela vous aide
la source
ndk.dir=G\:\\...\\Sdk\\ndk\\21.0.6113669
fonctionné pour moi.Après la mise à niveau vers gradle: 3.6.0 (ou version ultérieure). Essayez de renommer ou de supprimer les dossiers ndk et ndk-bundle situés dans C: \ Users \ <user> \ AppData \ Local \ Android \ Sdk
Le crédit va à: https://github.com/gradle/gradle/issues/12440#issuecomment-601214647
la source