Je veux compiler un projet Android open source (Netguard) à l'aide de gradel (gradlew clean build
). Mais j'ai rencontré cette erreur:
A problem occurred configuring project ':app'.
> Exception thrown while executing model rule: NdkComponentModelPlugin.Rules#cre
ateToolchains
> No toolchains found in the NDK toolchains folder for ABI with prefix: llvm
Je cherchais mais je ne trouvais rien d'aider. Voici le build.gradle
principal:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle-experimental:0.6.0-alpha1'
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Et voici le build.gradle
du projet app
:
apply plugin: 'com.Android.model.application'
model {
Android {
compileSdkVersion = 23
buildToolsVersion = "23.0.2"
defaultConfig.with {
applicationId = "eu.faircode.netguard"
minSdkVersion.apiLevel = 21
targetSdkVersion.apiLevel = 23
versionCode = 2016011801
versionName = "0.76"
archivesBaseName = "NetGuard-v$versionName-$versionCode"
}
}
Android.ndk {
moduleName = "netguard"
toolchain = "clang"
ldLibs.add("log")
}
Android.sources {
main {
jni {
source {
srcDir "src/main/jni/netguard"
}
exportedHeaders {
}
}
}
}
Android.buildTypes {
release {
minifyEnabled = true
proguardFiles.add(file('proguard-rules.pro'))
ndk.with {
debuggable = true
}
}
}
Android.buildTypes {
debug {
ndk.with {
debuggable = true
}
}
}
Android.productFlavors {
create("all") {
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:23.1.+'
compile 'com.Android.support:recyclerview-v7:23.1.+'
compile 'com.squareup.picasso:picasso:2.5.+'
}
Et j'utilise gradle-2.9-all
et Android-ndk-r10e
. Je ne sais pas si je devrais mentionner autre chose, alors commentez si vous avez besoin d'informations.
Deux ans ont passé, maintenant si vous tombez sur ici, vous pouvez éventuellement rencontrer un message d'erreur comme celui-ci:
Aucune chaîne d'outils trouvée dans le dossier Chaînes d'outils NDK pour ABI avec le préfixe mips64el-linux-Android
ou
Aucune chaîne d'outils trouvée dans le dossier Chaînes d'outils NDK pour ABI avec le préfixe mipsel-linux-Android
Le dernier NDK a supprimé la prise en charge de mips
abi, et la version plus récente du plugin Android Gradle vérifie toujours l’existence de la chaîne de fonctions mips. voir ici pour plus d'infos .
Solution: Mettez à niveau le plugin Android Gradle vers la version 3.1 ou plus récente.
par exemple. Ajouter les suivants dans le niveau de projet [28-sept-2018]
classpath "com.Android.tools.build:gradle:3.2.0"
Solution de contournement: Créez une structure de dossiers mipsel-linux-Android
pour tromper l'outil. Le moyen le plus simple serait de créer un lien symbolique vers aarch64-linux-Android-4.9
.
# on Mac
cd ~/Library/Android/sdk/ndk-bundle/toolchains
ln -s aarch64-linux-Android-4.9 mips64el-linux-Android
ln -s arm-linux-androideabi-4.9 mipsel-linux-Android
Vérifiez ce fil de trois options pour résoudre ce genre de problème
J'ai corrigé cette erreur en désinstallant le NDK dans SDK-Tools ..__ Donc, si vous n'avez pas besoin du NDK, désinstallez-le.
Mettez à jour votre plugin Gradle
classpath 'com.Android.tools.build:gradle:3.2.1'
et voir l'erreur magique parti.
Bonne codage - :)
J'ai rencontré le même problème lors de la mise à jour du studio Android 2.0 à 2.1 sous Windows 8.
J'ai trouvé une solution pour cela. Merci de suivre les étapes suivantes.
Cela se produit car le studio Android n'obtiendra pas une mise à jour complète de NDK dans le canal stable. Si vous n'utilisez pas NDK pour le développement de votre projet, vous pouvez simplement supprimer le dossier NDK de votre répertoire SDK.
Message d'erreur: «Aucune chaîne d'outils trouvée dans le dossier Chaînes d'outils NDK pour ABI avec le préfixe: llvm».
Après une nouvelle installation Web d'Android Studio avec NDK, j'ai importé un exemple de code Android qui utilisait NDK de GitHub et j'ai essayé de le compiler.
En conséquence eu une erreur:
Aucune chaîne d'outils trouvée dans le dossier Chaînes d'outils NDK pour ABI avec le préfixe: llvm
Solution: Pour certaines raisons, le processus d’installation standard sous macOS n’a pas réussi à installer un jeu complet:
~/Library/Android/sdk/ndk-bundle
avait manqué le dossier toolchains
avec tous les outils,
(ça devrait être comme ça: ~/Library/Android/sdk/ndk-bundle/toolchains
)
La solution consistait à télécharger NDK séparément, à l'ouvrir, à copier le dossier toolchain
et à le coller dans le dossier suivant:
~/Library/Android/sdk/ndk-bundle
Après ça a bien fonctionné pour moi.
Pas à pas:
1) Ouvrez la page avec les anciennes versions NDK:
https://developer.Android.com/ndk/downloads/older_releases
2) Convenez des conditions:
3) Téléchargez l'ancienne version de NDK
(par exemple 16b):
4) Ouvrez votre répertoire toolchains
.
5) Transférez les fichiers dont vous avez besoin du dossier toolchains
du fichier ZIP téléchargé vers votre dossier toolchains
:
6) Reconstruire le projet:
UPD 30 sept. 2018:
J'ai utilisé Android NDK Revision r16b pour corriger cette erreur dans mon cas. Je présente donc l'exemple avec cette version.
Mais il vaut mieux utiliser le NDK Android, révision r17c (juin 2018). C'est le dernier, supportant mips (recommandation raisonnable du commentaire de Weekend).
Sans télécharger, copier ou créer de lien symbolique, j'ai pu "réparer" l'erreur en créant simplement un répertoire vide dans lequel l'ancienne version du plugin Android Gradle attend la chaîne d'outils mips supprimée:
mkdir -p $Android_HOME/ndk-bundle/toolchains/mips64el-linux-Android/prebuilt/linux-x86_64
De toute évidence, $Android_HOME
pointe ici vers la racine de l'installation du SDK Android. Si vous utilisez MacOS , remplacez linux-x86_64
par darwin-x86_64
dans la commande ci-dessus. Sous Windows, utilisez windows-x86_64
.
J'ai désinstallé le NDK car je n'en avais pas besoin. Accédez au gestionnaire de SDK sur le studio Android (Outils -> Android -> Gestionnaire de SDK). Si NDK est installé. Décochez simplement la case et cliquez sur OK. Les composants installés seront supprimés.
Dans mon cas, cette erreur s’est produite lors de la création d’un nouveau Android Studio (Android studio 3.2.1) Projet Java avec
classpath 'com.Android.tools.build:gradle:2.0.0-beta6'
Donc je suis rétrogradé à
dependencies {
classpath 'com.Android.tools.build:gradle:3.2.1'
}
La meilleure solution ne reste pas dans une ancienne version, mais peut-être n’est-ce qu’un bogue temporaire dans la bêta, car le chemin NDK dans local.properties est toujours le même, mais le IDE ne se plaint pas plus
Android NDK 18.0 * semble avoir un problème ne pas créer tous les fichiers dans les dossiers après l'extraction. En raison de cela, la compilation de votre application échouera, car elle utilise les versions ndk.
Mieux vaut utiliser NDK 17.1 * ( https://developer.Android.com/ndk/downloads/ ) etc., et vous pourrez extraire ou utiliser l'extraction de studio Android vers ndk-bundle par défaut fonctionnera correctement.
[ https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/Android][1]
Pour les personnes essayant cet exemple et confrontées à des problèmes avec le dernier NDK. Peut suivre cette solution . Dans build.gradle Changer ceci
classpath 'com.Android.tools.build:gradle:3.0.1'
À
classpath 'com.Android.tools.build:gradle:3.1.2'
La raison en est que les mips sont obsolètes dans les dernières versions de ndk, Gradle version 3.1.2 n'aura aucune contrainte pour les mips. Cela suppose la présence de ces dossiers manquants.
Ouvrez Android Studio, allez dans Outils puis Android et SDK, décochez NDK Si vous n'en avez pas besoin et redémarrez Android Studio.
Dans votre fichier Gradle au niveau du projet, augmentez les dépendances version de chemin de classe faible à élevée comme
dependencies {
classpath 'com.Android.tools.build:gradle:3.0.0'
}
changer comme
dependencies {
classpath 'com.Android.tools.build:gradle:3.2.1'
}
J'ai eu un problème similaire, mais je voulais utiliser NDK version r9d en raison des exigences du projet.
Dans local.properties
, le chemin était défini sur ndk.dir=C\:\\Android\\ndk\\Android-ndk-r9d
, mais le problème était le suivant:
Aucune chaîne d'outils trouvée dans le dossier Chaînes d'outils NDK pour ABI avec le préfixe: [nom de la chaîne d'outils]
La solution était de:
sdk\ndk-bundle\toolchains
au \ndk\Android-ndk-r9d\toolchains
Il me semble que les chaînes d’outils copiées ne sont pas utilisées, mais qu’elles soient nécessaires pour une raison quelconque.
NOTE: Cette réponse semble être spécifique à: No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-Android
, mais elle était liée ici par:
De NDK r19b:
more ~/Android/Sdk/ndk-bundle/CHANGELOG.md
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-Android
, Mettez à jour votre fichier de projet en [utilisez le plugin version 3.1 ou plus récent]. Vous aurez également besoin de passer à Android Studio 3.1 ou plus récent.Pour le réparer comme je l'ai fait
Android Studio Fichier> Structure du projet et aller au projet
changer la version de Gradle à la version 4.6 & Android à la version 3.2.1
puis nettoyez le projet si vous avez cette erreur "Impossible de trouver aapt2-proto.jar"
aller à build.gradle (projet)
Essayez de déplacer la méthode google () (fichier .gradle) en haut de son bloc d'exécution L'ordre des référentiels dans lesquels il effectue la recherche, ce qui cause le problème.
par exemple, changez ceci:
repositories {
maven { url 'https://maven.fabric.io/public' }
google() <=== from here
mavenCentral()
}
Pour ça:
repositories {
google() <=== to here
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
Apportez ces modifications dans "buildscript" et "allprojects"
Si vous n'avez pas trouvé google () l'ajouter
J'ai résolu cette question par unInstall NDK, parce que je n'en ai pas besoin
Pour Android Studio 3.2.1 Mettez à jour votre
Gradle Version 4.6
Version du plugin Android 3.2.1
Le problème survient principalement lorsque vous clonez un projet précédent spécialement à partir de github. Ce que tu peux faire c'est
classpath 'com.Android.tools.build:gradle:3.2.1'
dans votre niveau de projet.
Puis, modifiez toutes les instances de compilation avec implémentation, à l'exception de compileSdkVersion , conservez-le tel quel dans le niveau de votre application.
Au lieu de synchroniser maintenant cliquez sur créer un projet (Ctrl + F9)
Ajoutez des référentiels Google Maven si nécessaire.
Mettez à niveau le wrapper gradle si nécessaire.
(Android Studio IDE vous demandera/vous guidera de la même manière pour les étapes 4 et 5)
ça corrige !! Profitez de codage
Résolu ce problème en ajoutant la dépendance google()
dans les deux référentiels de build.gradle
(Project: ProjectName). puis synchronisez votre projet
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:2.3.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
Voici le correctif.
Lors de la compilation d'un projet dans Android Studio, je rencontre parfois:
Erreur: Aucune chaîne d'outils trouvée dans le dossier Chaînes d'outils NDK pour ABI avec préfixe: arm-linux-androideabi/llvm
Cela peut être dû à la mise à jour des composants associés. La solution consiste à utiliser Android studio (Outils -> Android -> Gestionnaire de SDK). Sélectionnez l’élément ndk et supprimez-le. Si le programme en a besoin, vous pouvez le réinstaller. Cela garantira que l'emplacement du dossier est correct et qu'il n'y aura aucun problème de ce type.
Trouvez votre propre SDK Android local. Si vous téléchargez le SDK correspondant de ndk, vous obtiendrez un dossier appelé "ndk-bundle"
Il y a un dossier appelé "toolchains" à l'intérieur.
Nous avons remarqué qu’il n’y avait pas de fichiers liés à mips64el.
La solution est la suivante:
Cliquez ici pour télécharger le package NDK séparément via le navigateur . Après la décompression, ouvrez le dossier "toolchains", comparez-le avec le dossier Android-sdk-> ndk-bundle-> toolchains, recherchez le dossier manquant , copiez le passé 3. Recompiler, le problème est résolu . J'espère que cela vous aidera à vous accoupler
Pour moi, je pense qu’il pourrait y avoir un problème lors de l’installation d’Android NDK à partir du studio Android. J'ai pu résoudre ce problème de la manière suivante
Téléchargé Android ndk depuis
https://developer.Android.com/ndk/downloads/index.html
et placé dans ndk-bundle (où votre sdk Android est installé). Pour plus d'informations, consultez ces écrans.
Face au même problème.
J'ai eu le succès suivant les manières.
Ouvrez votre fichier buldle.gradle et mettez à niveau les versions pour suivre les deux classpath
classpath 'com.Android.tools.build:gradle:3.2.1'classpath' com.google.gms: google-services: 4.2.0 '
Ensuite, Sync et après avoir obtenu un fichier dilaog pour la mise à jour de la version Gradle, cliquez ensuite sur ce lien et attendez le téléchargement de toutes les mises à jour requises (Hope Internet available). Après avoir pris beaucoup de temps, vous avez réussi.
Commencez par mettre à jour la version de ndk https://developer.Android.com/ndk/downloads/
Si cela ne fonctionne pas, essayez ce qui suit:
Créer un dossier
Allez dans le dossier Sdk\ndk-bundle\toolchains (dans mon cas, il est C:\Utilisateurs\USER\AppData\Local\Android\Sdk\ndk-bundle\toolchains; vous pouvez trouver le vôtre sous Fichier- > structure du projet-> emplacement du SDK dans vousAndroid studio) et créez un dossier portant le nom indiqué par manquant dans l’erreur, par exemple: si l’erreur est
La synchronisation de Gradle a échoué: aucune chaîne d'outils trouvée dans le dossier Chaînes d'outils NDK pour ABI avec le préfixe: mipsel-linux-Android.
Créez ensuite un dossier avec le nom mipsel-linux-Android.
Inclure le contenu Accédez à nouveau au dossier Sdk\ndk-bundle\toolchains et ouvrez tous les dossiers déjà présents. Par exemple: Sdk\ndk-bundle\toolchains\aarch64-linux-Android-4.9 (Dans mycase C:\Utilisateurs\UTILISATEUR\AppData\Local\Android\Sdk\ndk-bundle\toolchains\aarch64- linux-Android-4.9) copiez le dossier prebuilt dans le dossier que nous avons créé à la dernière étape
Exécutez le projet à nouveau et cela fonctionnera
J'espère que ça aide!!
Si vous n'utilisez pas le NDK, désélectionnez la variable d'environnement Android_NDK_HOME
.
Si vous utilisez Ionic 3 Supprimez ndk à Android studio sdk tools.
le fichier de lien n'est pas bon pour moi.
ln -s aarch64-linux-Android-4.9 mips64el-linux-Android
ln -s arm-linux-androideabi-4.9 mipsel-linux-Android
Parce qu'il y a une autre erreur.
* What went wrong:
A problem occurred configuring project ':Test'.
> Expected caller to ensure valid ABI: MIPS
Ajoutez ceci dans defaultConfig si vous construisez avec gralde
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
Si vous utilisez la commande ndk-build, ajoutez ceci dans Application.mk.
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
Mettez simplement à niveau votre Android studio avec la dernière version >> connectez-vous à Internet pour télécharger le contenu en fonction de votre projet.
Bonne codage ..
Ouvrez Android/gradle/gradle-wrapper.properties et modifiez cette ligne: distributionUrl =
https\://services.gradle.org/distributions/gradle-4.1-all.Zip
à cette ligne:
distributionUrl =
https\://services.gradle.org/distributions/gradle-4.4-all.Zip
Ouvrez Android/build.gradle et changez cette ligne:
classpath 'com.Android.tools.build:gradle:3.0.1'
pour ça:
classpath 'com.Android.tools.build:gradle:3.1.2'
Dans mon expérience limitée avec cette question, j'essaye de résoudre le problème suivant:
1. Restez Android compilez la version des outils de la même manière que la version graduée. Par exemple: si vous utilisez la version 3.3.0 des outils de compilation, votre version doit être 4.10.1.Vous pouvez faire référence au lien https://developer.Android.com/studio/releases/gradle- plugin et chagne vos outils de compilation et version dans votre AS (Fichier-> Structure du projet-> Projet)
2.Si la méthode 1 ne fonctionne pas, vous pouvez personnaliser la version de votre chaîne d'outils ndk pour résoudre le problème: comme télécharger ndk18 ou ndk16, définir le chemin d'accès ndk à votre AS (Fichier-> Structure du projet-> Emplacement du SDK-> Emplacement du NDK Android)
Mettez à niveau votre Gradle Plugin
com.Android.tools.build:gradle:3.1.4
Améliorer les propriétés d'emballage de gradles
distributionUrl = https: //services.gradle.org/distributions/gradle-4.4-all.Zip
J'ai navigué sur local.properties, et là-bas le
ndk.dir=/yo/path/for/NDK
la ligne doit être mise à jour pour indiquer où se trouve votre ndk.
J'utilisais Crystax NDK et je ne savais pas que le NDK d'Android était toujours utilisé.
J'ai la même erreur en ajoutant NDK. J'ai beaucoup essayé et plus tard, j'ai trouvé la solution ci-dessous qui fonctionne parfaitement pour moi.
si vous souhaitez ajouter NDK à votre projet, suivez les étapes ci-dessous . 1. Si vous avez installé NDK à l'aide de SDK Manager, désinstallez-le d'abord. (décochez l’outil SDK et appliquez-le) 2. Téléchargez manuellement NDK à partir de son site officiel. (toute version) si le projet est ancien, alors préférez la version 17. 3. Extrayez ce fichier . 4. Accédez à la structure de votre projet> chemin NDK> ajouter le chemin du fichier extrait ici . 5. Projet de construction. et son travail.
La solution simple consiste à télécharger et à extraire le fichier suivant, qui contient les dossiers mips64el-linux-Android-4.9 et mipsel-linux-Android-4.9, dans votre dossier toolchains dans sdk "Android-sdk\ndk-bundle\toolchains".
Mettre à jour la version du projet
classpath 'com.Android.tools.build:gradle:3.2.1'
Mettre à jour le niveau de l'application: implementation 'com.Android.support:appcompat-v7:28.0.0' implementation 'com.Android.support:design:28.0.0'
Les étapes que j'ai suivies pour résoudre le problème comme suit,
Analyze -> Code Cleanup
File -> Project Structures -> Select project from the list and update the gradle version to latest.
Build -> Clean Project
Build -> Make Project
Maintenant, le problème lié à la construction peut être signalé comme utiliser la compilation au lieu de la mise en œuvre, etc.
S'il vous plaît corriger ceux-ci et j'espère que cela devrait résoudre le problème.
Après avoir regardé autour de moi, la solution fut de supprimer la désignation NDK de mes préférences.
Android Studio → Préférences → Paramètres système → Android SDK → Outils SDK → Désélectionner NDK → Bouton Appliquer.
Project et Gradle ont bien compilé après cela et j'ai pu avancer dans mon travail de projet.
En ce qui concerne les raisons pour lesquelles cela se produit, je ne sais pas, mais pour plus d’informations sur NDK, consultez:
J'ai résolu le problème en réinstallant le NDK.