Error: No se encontraron toolchains en la carpeta de cadenas de herramientas NDK para ABI con prefijo: llvm
Quiero compilar un proyecto de código abierto para Android (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
I serached pero no encontró enything ayudando. Aquí está el build.gradle
principal:
- Android NDK / JNI - referencia indefinida a la función definida en el archivo de encabezado personalizado
- Newbie en Android NDK: definición en Android.mk
- ¿Cómo crear callbacks entre código androide y código nativo?
- Android de vídeo cuadrado y concat
- Ndk-build no logra construir la biblioteca de audio Superpowered después de la reciente actualización de NDK
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.gradle
del proyecto de la 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.+' }
Y estoy usando gradle-2.9-all
y android-ndk-r10e
. No sé si debo mencionar algo más, así que comente si necesita alguna información.
- Desarrollo de procesamiento de audio Little Endian SDK con NDK
- Depurar código nativo en Android Studio
- Ndk-build eclipse argumento: no encuentra clase
- Enviar cadena C ++ a Java a través de JNI
- Conceptos básicos de NDK y OpenGL en android
- USTL o STLPort para Android?
- Cómo evitar la eliminación de símbolos de código nativos para la aplicación de Android
- Android NDK construir de spatialite?
Mensaje de error: "Ningún toolchains encontrado en la carpeta de cadenas de herramientas NDK para ABI con prefijo: llvm".
Después de la nueva instalación web de Android Studio con NDK, importé una muestra de código de Android que usaba NDK de GitHub y traté de compilarla.
Como resultado tuvo un error:
No hay toolchains encontrados en la carpeta de cadenas de herramientas NDK para ABI con prefijo: llvm
Solución: por algunas razones, el proceso de instalación estándar en el MAC no ha podido instalar un conjunto completo:
~/Library/Android/sdk/ndk-bundle
había perdido toolchains
carpeta con todas las herramientas,
(Debería ser así: ~/Library/Android/sdk/ndk-bundle/toolchains
)
La solución era descargar NDK por separado, abrirlo, copiar carpeta toolchain
y pegarlo en la carpeta:
~/Library/Android/sdk/ndk-bundle
Después de que funcionó bien para mí.
He enfrentado el mismo problema mientras actualización de Android de 2,0 a 2,1 en mi equipo de Windows 8.
He encontrado una solución para eso.Por favor, use los siguientes pasos.
- Descargue el androide NDK para las ventanas desde https://developer.android.com/ndk/downloads/index.html .
- Extraiga lo mismo y copie la carpeta "toolchain" del paquete.
- Pegue la carpeta bajo la carpeta NDK instalada en C: \ android-sdk-win \ ndk-bundle. [La ruta instalada puede variar según la instalación]
- Reinicie el estudio android.
Esto está sucediendo porque el estudio de Android no obtendrá la actualización NDK completa en el canal estable. Si no está utilizando NDK para el desarrollo de su proyecto, simplemente puede eliminar la carpeta NDK del directorio SDK.
He solucionado este error con la desinstalación de NDK en el SDK-Tools. Así que si no necesita el NDK, desinstálelo.
Greez h
En mi caso, este error se produjo al crear un nuevo Android Studio Java Project con
classpath 'com.android.tools.build:gradle:2.0.0-beta6'
Así que he bajado a
classpath 'com.android.tools.build:gradle:1.2.3'
No es la mejor solución para una versión anterior, pero tal vez sea sólo un error temporal en la beta ya que la ruta NDK en local.properties sigue siendo la misma, pero el IDE ya no se queja
Desinstalé el NDK ya que no lo necesitaba. Vaya a SDK manager en Android studio (Herramientas -> Android -> SDK Manager). Si NDK está instalado. Simplemente desmarca la casilla y haz clic en Aceptar. Se eliminarán los componentes instalados.
Para mí, creo que podría haber algún problema en la instalación de android NDK de android studio. Pude resolver esto de la siguiente manera
Descargado android ndk de
https://developer.android.com/ndk/downloads/index.html
Y se coloca dentro de ndk-bundle (donde está instalado su android sdk). Para más información, vea estas pantallas.
He tenido un problema similar, pero quería usar NDK versión r9d debido a los requisitos del proyecto.
En local.properties
la ruta se estableció en ndk.dir=C\:\\Android\\ndk\\android-ndk-r9d
pero que llevan al problema:
No hay toolchains encontrados en la carpeta de cadenas de herramientas de NDK para ABI con el prefijo: [toolchain-name]
La solución era:
- Instale el NDK más reciente utilizando el administrador de sdk
- Copie la cadena de herramientas [toolchain-name] que falta de la nueva ndk a la antigua. En mi caso desde
sdk\ndk-bundle\toolchains
a\ndk\android-ndk-r9d\toolchains
- Repita el proceso hasta que todos los toolchains necesarios estén allí
Me parece que las cadenas de herramientas copiadas no se utilizan, pero por alguna razón es necesario para que estén allí.