Errore: nessuna toolchain trovata nella cartella NDK toolchains per ABI con prefisso: llvm


208

Voglio compilare un progetto Android open source (Netguard) usando gradel ( gradlew clean build) Ma ho riscontrato questo errore:

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

Ho cercato ma non ho trovato nulla di utile. Ecco il principale 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
}

Ed ecco build.gradleil appprogetto:

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

E sto usando gradle-2.9-alle android-ndk-r10e. Non so se dovrei menzionare qualcos'altro, quindi commenta se hai bisogno di informazioni.


Prova ad aggiornare gli strumenti Gradle. classpath 'com.android.tools.build:gradle:3.2.0-beta05'
Photon Point

uso developer.android.com/ndk/downloads/older_releases e Android NDK, versione Revisione 16b (dicembre 2017) per scaricare le cartelle necessarie e risolvere il problema.
Panache,

Risposte:


376

Sono trascorsi due anni, ora se ti imbatti qui, potresti incontrare un messaggio di errore come questo:

Nessuna toolchain trovata nella cartella NDK toolchains per ABI con prefisso mips64el-linux-android

o

Nessuna toolchain trovata nella cartella NDK toolchains per ABI con prefisso mipsel-linux-android

Ultimo supporto NDK rimosso per mips abi e la versione precedente del plug-in Android Gradle controlla ancora l'esistenza della toolchain di mips. vedi qui per maggiori informazioni .

Soluzione : aggiorna il plug-in Android Gradle alla versione 3.1 o successiva.

ad es. aggiungere il seguente livello a livello di progetto [28-settembre-2018]

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

Soluzione alternativa : creare una mipsel-linux-androidstruttura di cartelle per ingannare lo strumento. Il modo più semplice sarebbe quello di un collegamento simbolico aaarch64-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

Controlla questo thread di tre opzioni per risolvere questo tipo di problema


6
Provato con il grado 4.1, non ha funzionato, ma la soluzione alternativa (creazione della cartella mipsel-linux-android-dummy) ha funzionato. Grazie @lazybug.

2
@Girish aggiorna il plug- in Android Gradle nel build.gradlefile di livello superiore , qualcosa del tipo com.android.tools.build:gradle:3.2.0-rc02, non la versione Gradle
prendere dal panico il

4
La soluzione alternativa menzionata qui è quella corretta: # 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
Su Windows: mklink /d mips64el-linux-android aarch64-linux-android-4.9e ha mklink /d mipsel-linux-android arm-linux-androideabi-4.9funzionato anche per me.
Mitch,

La soluzione "su Mac" funziona bene (adatta ~ / Parte libreria). Ma il prossimo aggiornamento di NDK (14 ottobre 2018) ha trovato un sacco di file inaspettati negli alberi mips *. Non sorprendente. Quindi ho rimosso di nuovo i collegamenti simbolici.
Quigi,

66

Per Android Studio 3.2.1+

Aggiorna il tuo plug-in Gradle

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

Se stai ricevendo questo errore:

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

aggiungi google () ai tuoi repository, in questo modo:

repositories {
    google()
    jcenter()
}

Happy Coding - :)


1
Questa è la vera soluzione
Martin



35

Ho riscontrato lo stesso problema durante l'aggiornamento di Android Studio dalla 2.0 alla 2.1 nella mia macchina Windows 8.

Ho trovato una soluzione per questo. Si prega di utilizzare i seguenti passaggi.

  1. Scarica Android NDK per Windows da https://developer.android.com/ndk/downloads/index.html .
  2. Estrai lo stesso e copia la cartella "toolchain" dal pacchetto.
  3. Incolla la cartella nella cartella NDK installata in C: \ android-sdk-win \ ndk-bundle. [Il percorso installato può variare in base all'installazione]
  4. Riavvia Android Studio.

Questo accade perché Android Studio non riceverà l'aggiornamento NDK completo nel canale stabile. Se non stai utilizzando NDK per lo sviluppo del tuo progetto, puoi semplicemente rimuovere la cartella NDK dalla tua directory SDK.


1
Funziona con Android Studio 3.2!
maxwellnewage,

1
Questo ha funzionato anche per me per aver corretto l'errore " Error : Android MIPS ToolChain directory "" does not exist" in Game Maker Studio 2 su un Mac. Ma avevo bisogno di ottenere la versione 17c dell'NDK da qui: developer.android.com/ndk/downloads/older_releases (secondo: reddit.com/r/gamemaker/comments/9m958a/… ) Grazie @nithinjith! ... ancora non costruendo tuttavia, è necessario risolvere:Android NDK: Please fix the APP_ABI definition in /Users/../Library/Android/sdk/ndk-bundle/build/core/default-application.mk
kris

33

Messaggio di errore: "Nessuna toolchain trovata nella cartella NDK toolchains per ABI con prefisso: llvm".

Dopo una nuova installazione web di Android Studio con NDK, ho importato un esempio di codice Android che utilizzava NDK da GitHub e ho provato a compilarlo.

Di conseguenza si è verificato un errore:

Nessuna toolchain trovata nella cartella NDK toolchains per ABI con prefisso: llvm

Soluzione: per alcuni motivi il processo di installazione standard su macOS non è riuscito a installare un set completo:

~/Library/Android/sdk/ndk-bundleaveva perso la cartella toolchainscon tutti gli strumenti,

(dovrebbe essere simile a questo: ~/Library/Android/sdk/ndk-bundle/toolchains)

La soluzione era scaricare NDK separatamente, aprirlo, copiare la cartella toolchaine incollarlo nella cartella:

~/Library/Android/sdk/ndk-bundle

Dopo quello ha funzionato bene per me.


nel mio caso è lì ma non c'è nessun file lì con prefisso aarch64-linux-android . Qualche suggerimento !!
CoDe

la cartella 'mips64el-linux-android-4.9' e 'mipsel-linux-android-4.9' non sono disponibili dopo il bundle ndk 16, quindi devo scaricare e aggiungere queste due cartelle nel bundle android sdk all'interno della cartella toolchains quindi problema risolto, ancora non hai capito perché questo errore?
Fazal,


22

Passo dopo passo:

1) Apri la pagina con le vecchie versioni NDK :

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

inserisci qui la descrizione dell'immagine

2) Accettare i Termini:

inserisci qui la descrizione dell'immagine

3) Scarica la versione precedente di NDK(ad esempio 16b):

inserisci qui la descrizione dell'immagine

4) Apri la tua toolchainsdirectory.

5) Trasferisci i file che ti servono dalla toolchainscartella del file zip scaricato alla tua toolchainscartella:

inserisci qui la descrizione dell'immagine

6) Ricostruisci il progetto:

inserisci qui la descrizione dell'immagine


UPD 30 set 2018:
Ho usato Android NDK Revision r16b per correggere questo errore nel mio caso. Quindi presento l'esempio con questa versione.
Ma è meglio usare Android NDK, Revision r17c (giugno 2018). È l'ultimo, a supportare le mips (ragionevole consiglio dal commento di Weekend).


Invece di (for example 16b), è meglio chiarire quale versione NDK è l'ultima a supportare mips. tramite la nota di rilascio di Android NDK Revision r17c (giugno 2018) : il supporto per ARMv5 (armeabi), MIPS e MIPS64 è stato rimosso. Tentare di creare una di queste ABI comporterà un errore. È 16besattamente.
Weekend

@Weekend Grazie per la tua raccomandazione. L'ho aggiunto alla mia risposta.
V. marzo

1
@vmarch Siamo spiacenti ma è 16besattamente. r17c è la prima versione che ha rimosso il supporto per MIPS :)
Weekend

1
@Oh, ho letto il tuo commento precedente così rapidamente. Ecco perché ho perso il punto. Le mie scuse! Ma questi file sono ancora presenti in Android NDK, Revision r17c (giugno 2018). E nella versione 18 furono finalmente rimossi. Guarda nell'archivio. developer.android.com/ndk/downloads/…
V.March

@vmarch Ben fatto! Non ho controllato l'archivio r17c, ho solo dedotto la precedente conclusione dalle note di rilascio.
Weekend

17

Senza scaricare, copiare o link simbolico, sono stato in grado di "correggere" l'errore semplicemente creando una directory vuota in cui la versione precedente del plug-in Android Gradle prevede la toolchain mips rimossa:

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

Ovviamente, $ANDROID_HOMEpunta alla radice dell'installazione dell'SDK per Android qui. Se si utilizza MacOS , sostituirlo linux-x86_64con darwin-x86_64nel comando sopra. Su Windows windows-x86_64.


Ha funzionato come per incanto.
Akbar Sha Ebrahim,

Dipende da cosa si riferisce al tuo progetto. Non ha funzionato per me, ma è un trucco carino e semplice per alcuni. Ho dovuto copiare la vera toolchain per eliminare l'errore.
Martin Zaske,

11

Ho disinstallato NDK poiché non ne avevo bisogno. Vai a SDK Manager su Android Studio (Strumenti -> Android -> SDK Manager). Se NDK è installato. Deseleziona la casella e fai clic su OK. I componenti installati verranno eliminati.


8

Nel mio caso, questo errore si è verificato durante la creazione di un nuovo progetto Java Android Studio (Android Studio 3.2.1) con

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

Quindi ho effettuato il downgrade a

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

Non la soluzione migliore rimane in una versione precedente, ma forse è solo un bug temporaneo nella beta poiché il percorso NDK in local.properties è sempre lo stesso, ma l'IDE non si lamenta più


Penso che questo sia un bug del plugin Gradle obsoleto. Basta aggiornare all'ultimo. Mi ha aiutato (dal 3.0 al 3.2.0-beta05 nel mio caso)
AnoDest,

Penso che sia aggiornato non declassato ... P
Shylendra Madda,

7

Android NDK 18.0 * sembra avere un problema non creando tutti i file nelle cartelle dopo l'estrazione. A causa di ciò, la compilazione dell'app non riuscirà e utilizza build ndk.

Meglio usare NDK 17.1 * ( https://developer.android.com/ndk/downloads/ ) ecc versione e puoi estrarre o usare l'estrazione di Android Studio in ndk-bundle per impostazione predefinita funzionerà bene.


5

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

Per le persone che provano questo esempio e affrontano problemi con l'ultimo NDK. Può seguire questa soluzione. In build.gradle cambia questo

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

Per

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

Il motivo è che i mips sono deprecati nelle ultime versioni di ndk, la versione Gradle 3.1.2 non avrà una coazione per i mips. Presuppone la presenza per queste cartelle mancanti.


4

Apri Android Studio, vai su Strumenti quindi su Android e poi su SDK, deseleziona NDK Se non ti serve e riavvia Android Studio.



3

A livello di progetto, il file Gradle aumenta la versione del percorso di classe delle dipendenze da bassa ad alta

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

cambiare come

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

3

Risolto aggiungendo google()dipendenza in entrambi i repository in build.gradle(Project: ProjectName). quindi sincronizza il tuo progetto

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()
    }
}

2

Ho avuto un problema simile, ma volevo usare la versione NDK r9d a causa dei requisiti del progetto.

Nel local.propertiespercorso era impostato su ndk.dir=C\:\\Android\\ndk\\android-ndk-r9dma questo portava al problema:

Nessuna toolchain trovata nella cartella NDK toolchains per ABI con prefisso: [nome-toolchain]

La soluzione era:

  1. Installa il NDK più recente usando sdk manager
  2. Copia la toolchain mancante [nome-toolchain] dal nuovo ndk al vecchio. Nel mio caso da sdk\ndk-bundle\toolchainsa\ndk\android-ndk-r9d\toolchains
  3. Ripetere il processo fino a quando tutte le toolchain richieste non sono presenti

Mi sembra che le toolchain copiate non vengano utilizzate, ma per qualche motivo è necessario che siano lì.


2

Ho risolto questa domanda con un ndk non installato, perché non ne ho bisogno


2

Ecco la soluzione.

Quando compilo un progetto in Android Studio, di tanto in tanto incontro:

Errore: nessuna toolchain trovata nella cartella NDK toolchains per ABI con prefisso: arm-linux-androideabi / llvm

Ciò può essere causato dall'aggiornamento dei componenti correlati. La soluzione è Android Studio (Strumenti -> Android -> SDK Manager). Seleziona l'elemento ndk ed eliminalo. Se il programma ne ha bisogno, è possibile reinstallarlo. Ciò garantirà che la posizione della cartella sia corretta e che non si verifichino tali problemi.


2

Per sistemarlo come ho fatto io

File Android Studio> struttura del progetto e vai al progetto

cambia la versione Gradle in 4.6 e la versione del plug-in Android in 3.2.1

controlla screenshot

quindi ripulisci il progetto se viene visualizzato l'errore "Impossibile trovare aapt2-proto.jar"

vai a build.gradle (progetto)

Prova a spostare il metodo google () (file .gradle) nella parte superiore della sua esecuzione blocca l'ordine dei repository in cui cerca che causa il problema.

ad esempio, cambia questo:

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

A questa:

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

Apporta le modifiche sia in "buildscript" che in "allprojects"

controlla screenshot

Se non hai trovato google () aggiungilo


2

Per Android Studio 3.2.1 Aggiorna il tuo

Gradle Versione 4.6

Plugin Android versione 3.2.1


2

Il problema si presenta soprattutto quando si clona un progetto precedente appositamente da Github. Quello che puoi fare è

  1. Cambia il classpath in

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

nel tuo livello di progetto.

  1. Quindi modifica tutte le istanze di compilazione con l'implementazione, tranne compileSdkVersion, mantienila così com'è nel tuo livello a livello di app.

  2. Invece di sincronizzare ora fai clic su crea progetto (Ctrl + F9)

  3. Aggiungi repository di google maven, se necessario.

  4. Aggiornare il wrapper gradle se necessario.

(Android Studio IDE ti chiederà / ti guiderà con lo stesso per i passaggi 4 e 5)

risolve !! Goditi la programmazione


2

NOTA: questa risposta sembra essere specifica di:, No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-androidma era collegata qui da:

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

Da NDK r19b:

more ~/Android/Sdk/ndk-bundle/CHANGELOG.md
  • Questa versione di NDK non è compatibile con il plug-in Android Gradle versione 3.0 o precedente. Se vedi un errore simile No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android, aggiorna il tuo file di progetto a [usa il plugin versione 3.1 o successiva]. Dovrai anche eseguire l'aggiornamento a Android Studio 3.1 o versioni successive.

1

Se non si utilizza NDK, deselezionare la variabile di ambiente ANDROID_NDK_HOME.



1

Se stai usando Ionic 3 Rimuovi ndk dagli strumenti sdk di android studio.


Fantastico, come soluzione temporanea per la specifica necessità di costruire progetti Android ionici, sebbene non sia l'ideale.
MFAL,

1

Trova il tuo Android-SDK locale, se scarichi l'SDK pertinente di ndk, ci sarà una cartella chiamata "ndk-bundle"

inserisci qui la descrizione dell'immagine

All'interno c'è una cartella chiamata "toolchains".

inserisci qui la descrizione dell'immagine

Abbiamo notato che non ci sono file relativi a mips64el all'interno.

inserisci qui la descrizione dell'immagine

La soluzione è la seguente:

Fare clic qui per scaricare il pacchetto NDK separatamente tramite il browser. Dopo aver decompresso, apri la cartella "toolchains", confrontala con la cartella android-sdk-> ndk-bundle-> toolchains, trova la cartella mancante, copia le precedenti 3. Ricompila, il problema è risolto. Spero ti aiuti ad accoppiarti


1

Di fronte allo stesso problema.

Ho avuto successo seguendo i modi.

Apri il tuo file buldle.gradle e aggiorna le versioni per seguire entrambi i percorsi di classe

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

Quindi sincronizza e dopo ottieni un dilaog per l'aggiornamento anche della versione Gradle, quindi fai clic su quel link e attendi il download di tutti gli aggiornamenti richiesti (Spero che Internet sia disponibile). Dopo aver impiegato molto tempo hai successo.


1

Innanzitutto, prova ad aggiornare la versione di ndk https://developer.android.com/ndk/downloads/

Se non funziona, puoi provare quanto segue:

  • Crea una cartella

    Vai alla cartella Sdk \ ndk-bundle \ toolchains (nel mio caso la sua C: \ Users \ USER \ AppData \ Local \ Android \ Sdk \ ndk-bundle \ toolchains; puoi trovare la tua in File-> struttura del progetto-> SDK posizione nel tuo Android Studio) e crea una cartella con il nome mostrato come mancante nell'errore per es: se l'errore è

    Sincronizzazione dei gradi fallita: nessuna toolchain trovata nella cartella NDK toolchains per ABI con prefisso: mipsel-linux-android

    Quindi crea una cartella con il nome mipsel-linux-android

  • Includi contenuto Vai di nuovo alla cartella Sdk \ ndk-bundle \ toolchains e apri qualsiasi cartella già presente. Ad esempio: Sdk \ ndk-bundle \ toolchains \ aarch64-linux-android-4.9 (in mycase C: \ Users \ USER \ AppData \ Local \ Android \ Sdk \ ndk-bundle \ toolchains \ aarch64-linux-android-4.9) copia la cartella precompilata in essa nella cartella che abbiamo creato nell'ultimo passaggio

  • Esegui nuovamente il progetto e funzionerà

Spero che sia d'aiuto!!


1

Nella mia limitata esperienza con questa domanda, provo a risolvere il problema usando il metodo seguente:

1.Resta la versione degli strumenti di build Android la stessa con la versione Gradle. Ad esempio: se si utilizza la versione degli strumenti di build 3.3.0, la versione gradle deve essere 4.10.1. È possibile fare riferimento tramite il collegamento https://developer.android.com/studio/releases/gradle-plugin e chagne your costruire strumenti e versione graduale nel proprio AS (File-> Struttura del progetto-> Progetto)

2.Se method1 non funziona, puoi personalizzare la versione della tua toolchain ndk per risolvere il problema: come scaricare ndk18 o ndk16, l'impostazione del percorso ndk è il tuo AS (File-> Struttura del progetto-> Posizione SDK-> Posizione NDK Android)


1

Navigare verso C:\Users\lalit\AppData\Local\Android\Sdk\ndk-bundle\toolchains .

Ora trova il nome della cartella aarch64-linux-android-4.9e rinominalo inmips64el-linux-android .

Riesegui l'app Android.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.