Error: no se encontraron cadenas de herramientas en la carpeta de cadenas de herramientas NDK para ABI con el prefijo: llvm

208

Quiero compilar un proyecto de Android de código abierto (Netguard) usando gradel ( gradlew clean build) Pero encontré este error:

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

Me puse a buscar pero no encontré nada que me ayudara. Aquí está el principal build.gradle:

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
}

Y aquí está el build.gradledel appproyecto:

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.+'
}

Y estoy usando gradle-2.9-ally android-ndk-r10e. No sé si debería mencionar algo más, así que comente si necesita información.

Saeed
fuente
Intenta actualizar las herramientas de gradle. classpath 'com.android.tools.build:gradle:3.2.0-beta05'
Photon Point
use developer.android.com/ndk/downloads/older_releases y Android NDK, versión de revisión 16b (diciembre de 2017) para descargar las carpetas necesarias y solucionar el problema.
Panache

Respuestas:

376

Han pasado dos años, ahora si te encuentras aquí, es posible que encuentres un mensaje de error como este:

No se encontraron cadenas de herramientas en la carpeta de cadenas de herramientas NDK para ABI con el prefijo mips64el-linux-android

o

No se encontraron cadenas de herramientas en la carpeta de cadenas de herramientas NDK para ABI con el prefijo mipsel-linux-android

El último NDK eliminó el soporte para mipsabi, y la versión anterior del complemento de gradle de Android aún verifica la existencia de la cadena de herramientas mips. ver aquí para más información .

Solución : Actualice el complemento de Android Gradle a 3.1 o posterior.

Por ejemplo, agregue seguimiento en el nivel de proyecto gradle [28-sept-2018]

 classpath "com.android.tools.build:gradle:3.2.0"

Solución alternativa : mipsel-linux-androidcree una estructura de carpetas para engañar a la herramienta. La forma más fácil sería un enlace simbólico a 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

Consulte este hilo de tres opciones para resolver este tipo de problema

no se asuste
fuente
66
Intenté con Gradle 4.1, no funcionó, pero la solución (creación de la carpeta mipsel-linux-android-dummy) funcionó. Gracias @lazybug.
2
@Girish actualizar Android Gradle Plugin en la parte superior nivel de build.gradlearchivo, algo así com.android.tools.build:gradle:3.2.0-rc02, no la versión Gradle
no se asuste
44
La solución mencionada aquí es la correcta: # 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
Avijeet Dutta
16
En Windows: mklink /d mips64el-linux-android aarch64-linux-android-4.9y mklink /d mipsel-linux-android arm-linux-androideabi-4.9funcionó para mí también.
Mitch
La solución "en Mac" funciona bien (adaptar ~ / parte de biblioteca). Pero la próxima actualización de NDK (14 de octubre de 2018) encontró un montón de archivos inesperados en los árboles mips *. No es sorprendente. Así que eliminé los enlaces simbólicos nuevamente.
Quigi
66

Para Android Studio 3.2.1+

Actualice su complemento Gradle

classpath 'com.android.tools.build:gradle:3.2.1'

Si ahora recibe este error:

Could not find com.android.tools.build:gradle:3.2.1.

simplemente agregue google () a sus repositorios, así:

repositories {
    google()
    jcenter()
}

Happy Coding - :)

Nikunj Paradva
fuente
1
Esta es la solución real
Martin
55

Solucioné este error desinstalando el NDK en SDK-Tools. Entonces, si no necesita el NDK, desinstálelo.

Herzi
fuente
77
¿Qué pasa si necesito NDK?
IgorGanapolsky
lo mismo aquí si queremos NDK, ¿cuál es la solución para ello?
Brijesh Joshi
Está solucionado si desinstala el NDK pero si necesita usar NDK, compruebe este stackoverflow.com/a/51589406/6533853
Ninja el
Para desinstalar, siga este stackoverflow.com/a/52207450/2768515
Chetan el
35

Me he enfrentado al mismo problema al actualizar Android Studio de 2.0 a 2.1 en mi máquina con Windows 8.

Encontré una solución para eso. Siga los siguientes pasos.

  1. Descargue el NDK de Android para Windows desde https://developer.android.com/ndk/downloads/index.html .
  2. Extraiga lo mismo y copie la carpeta "toolchain" del paquete.
  3. Pegue la carpeta debajo de la carpeta NDK instalada en C: \ android-sdk-win \ ndk-bundle. [La ruta instalada puede variar según la instalación]
  4. Reinicia el estudio de Android.

Esto está sucediendo porque el estudio de Android no recibirá una actualización completa de NDK en el canal estable. Si no está utilizando NDK para el desarrollo de su proyecto, simplemente puede eliminar la carpeta NDK de su directorio SDK.

Nithinjith
fuente
1
Funciona con Android Studio 3.2!
maxwellnewage
1
Esto también funcionó para mí para solucionar el error " Error : Android MIPS ToolChain directory "" does not exist" en Game Maker Studio 2 en una Mac. Pero necesitaba obtener la versión 17c del NDK desde aquí: developer.android.com/ndk/downloads/older_releases (según: reddit.com/r/gamemaker/comments/9m958a/… ) ¡Gracias @nithinjith! ... todavía no está construyendo, sin embargo, tengo que resolver:Android NDK: Please fix the APP_ABI definition in /Users/../Library/Android/sdk/ndk-bundle/build/core/default-application.mk
kris
33

Mensaje de error: "No se encontraron cadenas de herramientas en la carpeta de cadenas de herramientas NDK para ABI con el prefijo: llvm".

Después de una nueva instalación web de Android Studio con NDK, importé una muestra de código de Android que usaba NDK de GitHub e intenté compilarlo.

Como resultado tuvo un error:

No se encontraron cadenas de herramientas en la carpeta de cadenas de herramientas NDK para ABI con el prefijo: llvm

Solución: por alguna razón, el proceso de instalación estándar en macOS no pudo instalar un conjunto completo:

~/Library/Android/sdk/ndk-bundle había perdido la carpeta toolchains con todas las herramientas,

(debería ser así: ~/Library/Android/sdk/ndk-bundle/toolchains )

La solución fue descargar NDK por separado, abrirlo, copiar la carpeta toolchainy pegarlo en la carpeta:

~/Library/Android/sdk/ndk-bundle

Después de eso funcionó bien para mí.

James T Snell
fuente
en mi caso está ahí pero no hay archivo con el prefijo aarch64-linux-android . Cualquier sugerencia !!
Código
Las carpetas 'mips64el-linux-android-4.9' y 'mipsel-linux-android-4.9' no están disponibles después del paquete ndk 16, por lo que tengo que descargar y agregar estas dos carpetas en el paquete del paquete sdk de Android dentro de la carpeta de cadenas de herramientas, por lo tanto, el problema está resuelto, aún no entendí por qué este error?
Fazal
22

Paso a paso:

1) Abra la página con versiones antiguas de NDK :

https://developer.android.com/ndk/downloads/older_releases

ingrese la descripción de la imagen aquí

2) Acuerde los términos:

ingrese la descripción de la imagen aquí

3) Descargue la versión anterior de NDK(por ejemplo, 16b):

ingrese la descripción de la imagen aquí

4) Abre tu toolchainsdirectorio.

5) Transfiera los archivos que necesita de la toolchainscarpeta del archivo zip descargado a su toolchainscarpeta:

ingrese la descripción de la imagen aquí

6) Reconstruir el proyecto:

ingrese la descripción de la imagen aquí


UPD 30 sep 2018:
utilicé Android NDK Revision r16b para corregir este error en mi propio caso. Así que les presento el ejemplo con esta versión.
Pero es mejor usar el NDK de Android, Revisión r17c (junio de 2018). Es el último, apoyando mips (recomendación razonable del comentario de Weekend).

V.Marzo
fuente
En lugar de eso (for example 16b), es mejor aclarar qué versión de NDK es la última que admite mips. a través de la nota de lanzamiento de Android NDK Revision r17c (junio de 2018) : se ha eliminado la compatibilidad con ARMv5 (armeabi), MIPS y MIPS64. Intentar construir cualquiera de estos ABI resultará en un error. Es 16bexactamente
Fin de semana del
@ Fin de semana Gracias por tu recomendación. Lo agregué a mi respuesta.
V.Marzo
1
@vmarch Lo siento pero es 16bexactamente. r17c es la primera versión que eliminó el soporte para MIPS :)
Fin de semana
1
@ Oh, leí tu comentario anterior muy rápido. Por eso me perdí el punto. ¡Mis disculpas! Pero estos archivos todavía están presentes en el NDK de Android, Revisión r17c (junio de 2018). Y en la versión 18 finalmente fueron eliminados. Solo mira el archivo. developer.android.com/ndk/downloads/…
V.March
@vmarch ¡Bien hecho! No revisé el archivo r17c, solo deduje la conclusión anterior de las notas de la versión.
Fin de semana del
17

Sin descargar, copiar ni simular nada, pude "arreglar" el error simplemente creando un directorio vacío donde la versión anterior del complemento Android Gradle espera la cadena de herramientas mips eliminada:

mkdir -p $ANDROID_HOME/ndk-bundle/toolchains/mips64el-linux-android/prebuilt/linux-x86_64

Obviamente, $ANDROID_HOMEapunta a la raíz de la instalación del SDK de Android aquí. Si está utilizando MacOS , reemplácelo linux-x86_64con darwin-x86_64el comando anterior. En uso de Windows windows-x86_64.

Friederbluemle
fuente
Trabajó como encanto.
Akbar Sha Ebrahim
Depende de a qué se refiera su proyecto. No funcionó para mí, pero es un truco agradable y simple para algunos. Tuve que copiar la cadena de herramientas real para deshacerme del error.
Martin Zaske
11

Desinstalé el NDK ya que no lo necesitaba. Vaya al administrador de SDK en el estudio de Android (Herramientas -> Android -> Administrador de SDK). Si NDK está instalado. Simplemente desmarca la casilla y haz clic en Aceptar. Los componentes instalados serán eliminados.

diptia
fuente
8

En mi caso, este error ocurrió al crear un nuevo proyecto Java de Android Studio (Android studio 3.2.1) con

    classpath 'com.android.tools.build:gradle:2.0.0-beta6'

Así que me he degradado a

       dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
      }

No es la mejor solución quedarse en una versión anterior, pero tal vez sea solo un error temporal en la versión beta ya que la ruta NDK en local.properties sigue siendo la misma, pero el IDE ya no se queja

Marian Klühspies
fuente
Creo que este es un error del complemento de gradle obsoleto. Simplemente actualice a la última. Me ayudó (de 3.0 a 3.2.0-beta05 en mi caso)
AnoDest
Creo que se actualizó, no se degradó ... P
Shylendra Madda
7

Parece que Android NDK 18.0 * tiene un problema al no crear todos los archivos en carpetas después de la extracción. Debido a esto, la compilación de su aplicación fallará y usará compilaciones ndk.

Es mejor usar la versión NDK 17.1 * ( https://developer.android.com/ndk/downloads/ ) etc. y puede extraer o usar la extracción de Android Studio para que ndk-bundle funcione de manera predeterminada.

appapurapu
fuente
5

[ https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/androidfont>[1]

Para las personas que prueban este ejemplo y enfrentan problemas con el último NDK. Puede seguir esta solución. En build.gradle cambia esto

classpath 'com.android.tools.build:gradle:3.0.1'

A

classpath 'com.android.tools.build:gradle:3.1.2'

La razón es que los mips están en desuso en las últimas versiones de ndk, la versión 3.1.2 de Gradle no tendrá una compulsión por los mips. Asume la presencia de estas carpetas faltantes.

Sujith Royal
fuente
4

Abra Android Studio, vaya a Herramientas, luego Android y luego SDK, desactive NDK si no lo necesita y reinicie Android Studio.

Muhammad Bilal
fuente
3

En su archivo de Gradle de nivel de proyecto, aumente la versión de classpath de dependencias de menor a mayor como

dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
    }

para cambiar como

dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
    }
Karthikeyan DS
fuente
3

Lo resolvió agregando google()dependencia en ambos repositorios en build.gradle(Project: ProjectName). luego sincroniza tu proyecto

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()
    }
}
Zain
fuente
2

He tenido un problema similar, pero quería usar la versión r9d de NDK debido a los requisitos del proyecto.

En local.propertiesel camino se estableció en ndk.dir=C\:\\Android\\ndk\\android-ndk-r9dpero eso condujo al problema:

No se encontraron cadenas de herramientas en la carpeta de cadenas de herramientas NDK para ABI con el prefijo: [nombre-cadena-herramienta]

La solución fue:

  1. Instale el NDK más nuevo usando el administrador de SDK
  2. Copie la cadena de herramientas que falta [nombre de la cadena de herramientas] del nuevo ndk al antiguo. En mi caso de sdk\ndk-bundle\toolchainsa\ndk\android-ndk-r9d\toolchains
  3. Repita el proceso hasta que haya todas las cadenas de herramientas necesarias

Me parece que las cadenas de herramientas copiadas no se usan, pero por alguna razón es necesario que estén allí.

Marcin Kunert
fuente
2

Resolví esta pregunta por ndk sin instalar, porque no la necesito

alfa
fuente
2

Aquí está la solución.

Al compilar un proyecto en Android Studio, ocasionalmente encuentro:

Error: no se encontraron cadenas de herramientas en la carpeta de cadenas de herramientas NDK para ABI con el prefijo: arm-linux-androideabi / llvm

Esto puede deberse a la actualización de componentes relacionados. La solución es Android Studio (Herramientas -> Android -> SDK Manager). Seleccione el elemento ndk y elimínelo. Si el programa lo necesita, puede reinstalarlo. Esto asegurará que la ubicación de la carpeta sea correcta y no habrá tal problema.

0xAliHn
fuente
2

Para arreglarlo como lo hice

Android Studio File> estructura del proyecto e ir al proyecto

cambie la versión de Gradle a 4.6 y la versión del complemento de Android a 3.2.1

comprobar captura de pantalla

luego limpie el proyecto si recibió este error "No se pudo encontrar aapt2-proto.jar"

ir a build.gradle (proyecto)

Intente mover el método google () (archivo .gradle) a la parte superior de su ejecución, bloquee el orden de los repositorios en los que busca el problema.

por ejemplo, cambie esto:

repositories {
  maven { url 'https://maven.fabric.io/public' }
  google()      <===  from here
  mavenCentral()
}

A esto:

repositories {
  google()     <===  to here
  maven { url 'https://maven.fabric.io/public' }
  mavenCentral()
}

Realice esos cambios tanto en "buildscript" como en "allprojects"

comprobar captura de pantalla

Si no encontró google () agréguelo

Bachlil
fuente
2

Para Android Studio 3.2.1 Actualice su

Gradle Versión 4.6

Complemento de Android versión 3.2.1

Masum
fuente
2

El problema surge principalmente cuando clonas un proyecto anterior especialmente desde github. Lo que puedes hacer es

  1. Cambia el classpath a

classpath 'com.android.tools.build:gradle:3.2.1'

en tu proyecto gradle nivel.

  1. Luego cambie todas las instancias de compilación con implementación, excepto compileSdkVersion, manténgalo como está en su nivel de aplicación.

  2. En lugar de sincronizar, ahora haga clic en hacer proyecto (Ctrl + F9)

  3. Agregue repositorios de Google Maven si es necesario.

  4. Actualice la envoltura de gradle si es necesario.

(Android Studio IDE le preguntará / guiará con lo mismo para los pasos 4 y 5)

se arregla !! Disfruta la codificación

Aakash Birari
fuente
2

NOTA: Esta respuesta parece ser específica para:, No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-androidpero se vinculó aquí por:

* /programming/52193274/no-toolchains-found-in-the-ndk-toolchains-folder-for-abi-with-prefix-mips64el-l

Desde NDK r19b:

more ~/Android/Sdk/ndk-bundle/CHANGELOG.md
  • Esta versión del NDK es incompatible con el complemento Android Gradle versión 3.0 o anterior. Si ve un error como No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android, actualice su archivo de proyecto a [use la versión del complemento 3.1 o posterior]. También deberá actualizar a Android Studio 3.1 o posterior.
nikc
fuente
1

Si no usa el NDK, desactive la variable de entorno ANDROID_NDK_HOME.

Cristan
fuente
1

Si está utilizando Ionic 3, elimine ndk de las herramientas sdk de android studio.

Taimoor Tariq
fuente
Genial, como una solución temporal para la necesidad específica de construir proyectos iónicos de Android, aunque no es lo ideal.
MFAL
1

Encuentre su propio Android-SDK local, si descarga el SDK relevante de ndk, habrá una carpeta llamada "ndk-bundle"

ingrese la descripción de la imagen aquí

Dentro hay una carpeta llamada "cadenas de herramientas".

ingrese la descripción de la imagen aquí

Notamos que no hay archivos relacionados con mips64el dentro.

ingrese la descripción de la imagen aquí

La solución es la siguiente:

Haga clic aquí para descargar el paquete NDK por separado a través del navegador. Después de descomprimir, abra la carpeta "toolchains", compárela con la carpeta android-sdk-> ndk-bundle-> toolchains, encuentre la carpeta que falta, copie el pasado 3. Recompile, el problema está resuelto. Espero que te ayude compañero

Príncipe
fuente
1

Enfrentando el mismo problema.

Obtuve el éxito siguiendo formas.

Abra su archivo buldle.gradle y actualice las versiones para seguir ambos classpath

classpath 'com.android.tools.build:gradle:3.2.1' classpath 'com.google.gms: google-services: 4.2.0'

Luego sincronice y luego obtenga un dilaog para actualizar la versión de Gradle, luego haga clic en ese enlace y espere a que se descarguen todas las actualizaciones requeridas (Hope Internet disponible). Después de tomar mucho tiempo, tienes éxito.

subhash gaikwad
fuente
1

Primero, intente actualizar la versión ndk https://developer.android.com/ndk/downloads/

Si eso no funciona, puede intentar lo siguiente:

  • Crear una carpeta

    Vaya a la carpeta Sdk \ ndk-bundle \ toolchains (en mi caso es C: \ Users \ USER \ AppData \ Local \ Android \ Sdk \ ndk-bundle \ toolchains; puede encontrar el suyo en Archivo-> estructura del proyecto-> SDK ubicación en su estudio de Android) y cree una carpeta con el nombre que se muestra como faltante en el error, por ejemplo: si el error es

    Error de sincronización de Gradle: no se encontraron cadenas de herramientas en la carpeta de cadenas de herramientas NDK para ABI con el prefijo: mipsel-linux-android

    Luego cree una carpeta con el nombre mipsel-linux-android

  • Incluir contenido Vuelva a la carpeta Sdk \ ndk-bundle \ toolchains nuevamente y abra cualquier carpeta que ya esté en ella. Por ejemplo: Sdk \ ndk-bundle \ toolchains \ aarch64-linux-android-4.9 (en mycase C: \ Users \ USER \ AppData \ Local \ Android \ Sdk \ ndk-bundle \ toolchains \ aarch64-linux-android-4.9) copie la carpeta preconstruida en ella a la carpeta que creamos en el último paso

  • Ejecute el proyecto nuevamente y funcionará

¡¡Espero eso ayude!!

Dismi Paul
fuente
1

En mi experiencia limitada con esta pregunta, trato de resolver el problema usando el método siguiente:

1.Mantenga la versión de las herramientas de compilación de Android de la misma manera que la versión de gradle. Por ejemplo: si usa la versión de herramientas de compilación es 3.3.0, su versión de gradle debe ser 4.10.1. Puede hacer referencia mediante el enlace https://developer.android.com/studio/releases/gradle-plugin y cambiar su herramientas de construcción y versión de gradle en su AS (Archivo-> Estructura del proyecto-> Proyecto)

2.Si el método1 no funciona, puede personalizar su versión de cadenas de herramientas ndk para resolver el problema: como descargar ndk18 o ndk16, configurar la ruta ndk es su AS (Archivo-> Estructura del proyecto-> Ubicación SDK-> Ubicación Android NDK)

廖志伟
fuente
1

Navegar a C:\Users\lalit\AppData\Local\Android\Sdk\ndk-bundle\toolchains .

Ahora, busque el nombre de la carpeta aarch64-linux-android-4.9y cámbiele el nombre amips64el-linux-android .

Vuelva a ejecutar la aplicación de Android.

BlackHat Gaming
fuente