web-dev-qa-db-fra.com

Comment réparer Android studios 2.3 bug NDK?

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.

46
Ryder Thacker

J'ai pu empêcher ce message agaçant; Voici ce qui a fonctionné pour moi.

CONTEXTE:

  1. Je n'utilise pas du tout le NDK et je n'ai jamais installé le NDK.

  2. 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.

  3. 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.

  4. 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.

26
Carl

Il suffit d'installer le Android NDK .

Cela a corrigé mon erreur et mon avertissement!

https://i.stack.imgur.com/Lsu8E.png

  1. Allez à Tools -> Android -> SDK Manager
  2. Cliquez SDK Tools
  3. CHECK NDK
  4. Appliquer et quitter.
12
RagsB

Cela ressemble peut-être à la mise à jour du SDK à partir de Android Studio IDE pourrait vous aider

Les étapes sont les suivantes:

  1. Aller à la Tools (top-menu item) > Android > SDK Manager
  2. Cliquez sur l'onglet Outils SDK
  3. Faites défiler la liste jusqu'à l'option NDK

Captures d'écran ici: Comment mettre à jour Android NDK en place?

10
Gene Bo

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):

ndk-bundle folder in Android SDK folder

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.

8
Oleksandr

Vous pouvez l'essayer:

Il y a déjà une case à cocher pour cela dans Android studio.

Android Studio -> Préférences -> Compilateur -> Gradlé -> Options de ligne de commande -> Configurer à la demande

Décochez-la, puis synchronisez à nouveau le dégradé

enter image description here

7
Harshit Agrawal

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.

2
Alex Cohn

Ce type de déclaration d'erreur est: -

  1. NDK manque un répertoire "plateformes".
  2. Comment configurer Android_NDK_HOME de sorte que Android Studio ne demande pas l'emplacement de ndk?

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.

Android Studio NDK 2.3 BUG

1
Lalit Baghel

La mise à jour du NDK sous Android Studio SDK a résolu le problème.

1
amilab

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.

0
CodeToLife

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.

0
davenpcj