Je suppose que c'est un bogue puisque je n'ai eu aucun problème jusqu'à la nouvelle mise à jour. Donc, je ne peux pas utiliser la console Gradle pour déboguer mon application parce que j'ai cet avertissement -
"La configuration à la demande est une fonction d’incubation. Il manque un répertoire" plates-formes "dans NDK. Si vous utilisez NDK, vérifiez que ndk.dir est défini sur un répertoire NDK valide. Il est actuellement défini sur C:\Users\Emily Thacker\AppData\Local\Android\Sdk\ndk-bundle. Si vous n'utilisez pas NDK, désactivez la variable NDK de Android_NDK_HOME ou local.properties pour supprimer cet avertissement. "
Je suis à peu près sûr de ne pas utiliser NDK et je ne vois pas comment résoudre ce problème, voici mon local.properties
## This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file should *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=C\:\\Users\\Emily Thacker\\AppData\\Local\\Android\\Sdk
De plus, je ne vois pas de fichier Android_NDK_HOME dans mon répertoire.
J'ai pu empêcher ce message agaçant; Voici ce qui a fonctionné pour moi.
CONTEXTE:
Je n'utilise pas du tout le NDK et je n'ai jamais installé le NDK.
Cependant, comme mentionné dans une autre réponse ici par xsveda, il s'agit d'un bogue Gradle qui est documenté ici:
https://code.google.com/p/Android/issues/detail?id=228424
de sorte que même "l'innocent NDK" peut en devenir la victime.
Le problème est que Gradle calcule l’emplacement d’un dossier NDK en ajoutant simplement la chaîne "/ ndk-bundle" à l’emplacement du dossier du SDK, même si vous n’avez jamais installé le NDK.
Après avoir établi cette fausse attente d'un dossier NDK existant dans un emplacement particulier, chaque fois que vous créez un environnement, Gradle vous avertit que vous "manquez" ce dossier. Ceci est juste un avertissement et n'empêche pas votre construction de se terminer, mais c'est ennuyeux.
COMMENT J’AI ARRÊTÉ LE MESSAGE ANNUEL:
Etant donné que l’espace disque est bon marché et que mon temps m’est précieux, j’ai créé ce bogue en installant NDK, même si je n’ai pas l’intention de l’utiliser.
Pour ce faire, vous pouvez aller à:
Fichier -> Structure du projet -> Emplacement du SDK
et regardez dans le champ Android NDK. Si vous n'avez pas installé le NDK, ce champ sera vide.
Dans ce cas, sous ce champ se trouve un lien pour installer le NDK. Cliquez sur ce lien et installez-le. Cela prend quelques minutes.
Une fois l'installation terminée et la boîte de dialogue de progression de l'installation fermée, l'emplacement du NDK est automatiquement inscrit dans le champ Android NDK. Ce sera quelque chose comme:
C:\dev\astudiosdk\ndk-bundle
Cliquez sur le bouton OK et compilez à nouveau. L'erreur disparaît.
Notez que vous pouvez pouvoir simplement taper le dossier attendu dans ce champ; Je n'ai pas essayé ça. Mais je ne sais pas si cela pourrait causer d’autres problèmes, surtout si vous décidez finalement d’utiliser le NDK.
Il suffit d'installer le Android NDK .
Cela a corrigé mon erreur et mon avertissement!
ools -> Android -> SDK Manager
SDK Tools
NDK
Cela ressemble peut-être à la mise à jour du SDK à partir de Android Studio IDE pourrait vous aider
Les étapes sont les suivantes:
Tools (top-menu item) > Android > SDK Manager
Captures d'écran ici: Comment mettre à jour Android NDK en place?
Correction de ce problème en supprimant un dossier ndk-bundle
vide du dossier racine du SDK (vous ne savez pas pourquoi et quand il est apparu):
Voici l'explication pourquoi cela aide de le problème sur Android bug tracker :
Pour tous, vous rencontrez toujours ce problème avec le plugin 3.0.0-alpha1 ou ultérieur. Veuillez créer un nouveau bogue et essayer de répondre à toutes les questions du # 33. Nous avons besoin de plus d'informations pour déboguer le problème et l'ajout de commentaires à un bogue fermé est un moyen simple de s'y perdre.
Pour donner un peu d’arrière-plan, le plugin vérifie si le répertoire NDK est valide. Très probablement, vous n'utilisez pas NDK. Nous supposons automatiquement que c'est dans {sdk}/ndk-bundle. Il sera ignoré si {sdk}/ndk-bundle n'existe pas. Si le répertoire "plates-formes" manque dans le NDK, cela signifie qu'il existe un {sdk}/ndk-bundle, mais pas un répertoire {sdk}/ndk-bundle/plates-formes. Cela signifie que vous avez un NDK corrompu pour une raison quelconque. Il est prudent de simplement supprimer {sdk}/ndk-bundle si vous ne l'utilisez pas.
Vous ne devez pas utiliser de chemin de répertoire avec des espaces pour Android SDK. Comme cure facile, vous pouvez changer manuellement
sdk.dir=C:/Users/EMILYT~1/AppData/Local/Android/Sdk
Vous n'avez pas besoin d'installer NDK.
Ce type de déclaration d'erreur est: -
Solution:
Ouvrez votre build.gradle
et vous verrez deux chemins de gradles comme: classpath 'com.Android.tools.build:gradle:2.3.0' classpath 'com.Android.tools.build:gradle:2.2.0'
Vous pouvez supprimer l'un de ces classpath et ne conserver qu'un seul classpath.
Nettoyer le projet gradlew clean
Cela fonctionne pour moi jamais besoin de définir le chemin ndk ou le paramètre ndk.
La mise à jour du NDK sous Android Studio SDK a résolu le problème.
Si vous ne pouvez pas construire votre projet en libérant APK
Cet avertissement que vous voyez est juste un avertissement. Ce qui est drôle, c’est que vous avez probablement laissé certaines langues, strings.xml, sans les noms requis. Ou certaines chaînes localisées-.xml ont des caractères indésirables tels que "'" qui doivent être remplacés par ex. "\'". Globalement, cela peut être lié aux ressources de votre application. Revérifiez-les soigneusement en premier.
Pour moi, l'erreur NDK s'est avérée être un faux diagnostic. Cette erreur s'est produite lorsque Gradle a lancé une exception ClassNotFound
sur la classe Java.io.UncheckedIOException
.
Bien que la classe soit définie dans Java 8, elle n’était pas incluse dans le JDK 1.8.0u51 (ni dans les versions antérieures) que j’avais installé.
La mise à jour du JDK et la suppression de la version 1.8.0u51 ont résolu le problème.