Erro: nenhuma cadeia de ferramentas encontrada na pasta NDK toolchains para ABI com o prefixo: llvm

207

Eu quero compilar um projeto android de código aberto (Netguard) usando gradel ( gradlew clean build), mas encontrei este erro:

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

Entrei em paz, mas não achei nada ajudando. Aqui está o 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
}

E aqui está build.gradleo appprojeto:

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 eu estou usando gradle-2.9-alle android-ndk-r10e. Não sei se devo mencionar mais alguma coisa, então comente se precisar de alguma informação.

Saeed
fonte
Tente atualizar as ferramentas de gradle. classpath 'com.android.tools.build:gradle:3.2.0-beta05'
Photon Point
use developer.android.com/ndk/downloads/older_releases e Android NDK, versão 16b (dezembro de 2017) para baixar as pastas necessárias e corrigir o problema.
Panache
Confira esta discussão de três opções para resolver este tipo de problema
Shizhen

Respostas:

376

Dois anos se passaram, agora, se você se deparar com aqui, poderá encontrar uma mensagem de erro como esta:

Nenhuma ferramenta encontrada na pasta NDK toolchains para ABI com o prefixo mips64el-linux-android

ou

Nenhuma ferramenta encontrada na pasta NDK toolchains para ABI com o prefixo mipsel-linux-android

O NDK mais recente removeu o suporte para mipsabi e a versão earler do plugin android gradle ainda verifica a existência de mips toolchain. veja aqui para mais informações .

Solução : atualize o plug-in Android Gradle para 3.1 ou mais recente.

por exemplo, adicione o seguinte no nível do projeto gradle [28-Set-2018]

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

Solução alternativa : crie uma mipsel-linux-androidestrutura de pastas para enganar a ferramenta. A maneira mais fácil seria o link simbólico para 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

Verifique este tópico de três opções para resolver esse tipo de problema

não entre em pânico
fonte
6
Tentei com o gradle 4.1, não funcionou, mas a solução alternativa (criação da pasta mipsel-linux-android-dummy) funcionou. Obrigado @lazybug.
2
@Girish atualizar Android Gradle Plugin no topo nível build.gradlede arquivo, algo como com.android.tools.build:gradle:3.2.0-rc02, não a versão Gradle
não entre em pânico
4
A solução alternativa mencionada aqui é a correta: # 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
No Windows: mklink /d mips64el-linux-android aarch64-linux-android-4.9e mklink /d mipsel-linux-android arm-linux-androideabi-4.9funcionou para mim também.
Mitch
A solução alternativa "no Mac" funciona bem (adaptação ~ / parte da biblioteca). Mas a próxima atualização do NDK (14 de outubro de 2018) encontrou um monte de arquivos inesperados nas árvores mips *. Não é surpreendente. Então eu removi os links simbólicos novamente.
Quigi 15/10
66

Para Android studio 3.2.1+

Atualize seu plugin Gradle

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

Se você está recebendo este erro agora:

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

basta adicionar google () aos seus repositórios, assim:

repositories {
    google()
    jcenter()
}

Happy Coding - :)

Nikunj Paradva
fonte
1
Esta é a solução real
Martin
1
Confira esta discussão de três opções para resolver este tipo de problema
Shizhen
55

Corrigi esse erro desinstalando o NDK no SDK-Tools. Portanto, se você não precisar do NDK, desinstale-o.

Herzi
fonte
7
E se eu precisar de NDK?
IgorGanapolsky 31/07
mesmo aqui, se queremos NDK, qual é a solução para isso?
Brijesh Joshi
É corrigido se você desinstalar o NDK, mas se você precisar usá-lo, verifique este stackoverflow.com/a/51589406/6533853
Ninja
Para desinstalar, siga este stackoverflow.com/a/52207450/2768515
Chetan
35

Eu enfrentei o mesmo problema ao atualizar o Android studio de 2.0 para 2.1 na minha máquina Windows 8.

Encontrei uma solução para isso.Por favor, siga as etapas abaixo.

  1. Faça o download do NDK do Android para Windows em https://developer.android.com/ndk/downloads/index.html .
  2. Extraia o mesmo e copie a pasta "toolchain" do pacote.
  3. Cole a pasta na pasta NDK instalada em C: \ android-sdk-win \ ndk-bundle. [O caminho instalado pode variar com base na sua instalação]
  4. Reinicie o android studio.

Isso está acontecendo porque o Android studio não recebe atualização NDK completa no canal estável. Se você não estiver usando o NDK para o desenvolvimento do seu projeto, basta remover a pasta NDK do diretório do SDK.

Nithinjith
fonte
1
Funciona com o Android Studio 3.2!
Max17newage #
1
Isso também funcionou para corrigir o erro " Error : Android MIPS ToolChain directory "" does not exist" no Game Maker Studio 2 em um Mac. Mas eu precisava obter a versão 17c do NDK aqui: developer.android.com/ndk/downloads/older_releases (conforme reddit.com/r/gamemaker/comments/9m958a/… ) Obrigado @nithinjith! ... ainda não construindo, é necessário resolver:Android NDK: Please fix the APP_ABI definition in /Users/../Library/Android/sdk/ndk-bundle/build/core/default-application.mk
kris
33

Mensagem de erro: “Nenhuma cadeia de ferramentas encontrada na pasta NDK toolchains para ABI com prefixo: llvm”.

Após a instalação da Web do Android Studio com NDK, importei um exemplo de código do Android que usava o NDK do GitHub e tentei compilá-lo.

Como resultado, houve um erro:

Nenhuma ferramenta encontrada na pasta NDK toolchains para ABI com o prefixo: llvm

Solução: por algumas razões, o processo de instalação padrão no macOS falhou ao instalar um conjunto completo:

~/Library/Android/sdk/ndk-bundletinha perdido pasta toolchainscom todas as ferramentas,

(que deve ser assim: ~/Library/Android/sdk/ndk-bundle/toolchains)

A solução foi fazer o download do NDK separadamente, abri-lo, copiar a pasta toolchaine colá-lo na pasta:

~/Library/Android/sdk/ndk-bundle

Depois disso, funcionou bem para mim.

James T Snell
fonte
no meu caso, está lá, mas não há arquivo com o prefixo aarch64-linux-android . Alguma sugestão !!
CoDe
A pasta 'mips64el-linux-android-4.9' e 'mipsel-linux-android-4.9' não estão disponíveis após o pacote ndk 16, então eu tenho que baixar e adicionar essas duas pastas no pacote sdk android dentro da pasta toolchains, portanto, o problema foi resolvido, ainda não entendi por que esse erro?
quer
Confira esta discussão de três opções para resolver este tipo de problema
Shizhen
22

Passo a passo:

1) Abra a página com NDK antigo versões :

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

insira a descrição da imagem aqui

2) Concorde com os termos:

insira a descrição da imagem aqui

3) Faça o download da versão mais antiga do NDK(por exemplo, 16b):

insira a descrição da imagem aqui

4) Abra seu toolchainsdiretório.

5) Transfira os arquivos necessários da toolchainspasta do arquivo zip baixado para a sua toolchainspasta:

insira a descrição da imagem aqui

6) Reconstrua o projeto:

insira a descrição da imagem aqui


UPD 30 de setembro de 2018:
usei o Android NDK Revision r16b para corrigir esse erro no meu próprio caso. Então, apresento o exemplo com esta versão.
Mas é melhor usar o NDK do Android, Revisão r17c (junho de 2018). É o último, apoiando mips (recomendação razoável do comentário de Weekend).

V.Março
fonte
Em vez disso (for example 16b), é melhor esclarecer qual versão do NDK é a última que suporta mips. via nota de versão do Android NDK Revisão r17c (junho de 2018) : O suporte para ARMv5 (armeabi), MIPS e MIPS64 foi removido. Tentar criar qualquer uma dessas ABIs resultará em um erro. É 16bexatamente.
Fim de semana
Obrigado por sua recomendação. Eu adicionei à minha resposta.
V.March
1
@ vmarch Desculpe, mas é 16bexatamente. r17c é a primeira versão que removeu o suporte para MIPS :)
Weekend
1
@ Oh, eu li o seu comentário anterior muito rapidamente. É por isso que eu errei. Peço desculpas! Mas esses arquivos ainda estão presentes no NDK do Android, revisão r17c (junho de 2018). E na versão 18 eles foram finalmente removidos. Basta olhar para o arquivo. developer.android.com/ndk/downloads/…
V.Março 8/18
@vmarch Bem feito! Não verifiquei o arquivo r17c, apenas deduzi a conclusão anterior das notas de versão.
Fim de semana
17

Sem fazer download, copiar ou simbolizar nada, eu consegui "consertar" o erro simplesmente criando um diretório vazio onde a versão mais antiga do plug-in Android Gradle espera a cadeia de ferramentas mips removida:

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

Obviamente, $ANDROID_HOMEaponta para a raiz da instalação do Android SDK aqui. Se você estiver usando o MacOS , substitua linux-x86_64por darwin-x86_64no comando acima. No uso do Windows windows-x86_64.

friederbluemle
fonte
Funcionou como charme.
Akbar Sha Ebrahim 10/10
Depende do que seu projeto se refere. Não funcionou para mim, mas é um truque agradável e simples para alguns. Eu tive que copiar a cadeia de ferramentas real para me livrar do erro.
Martin Zaske
11

Desinstalei o NDK porque não precisava dele. Vá para o gerenciador do SDK no Android studio (Ferramentas -> Android -> Gerenciador do SDK). Se o NDK estiver instalado. Apenas desmarque a caixa e clique em OK. Os componentes instalados serão excluídos.

diptia
fonte
8

No meu caso, esse erro ocorreu ao criar um novo projeto Java do Android Studio (Android studio 3.2.1) com

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

Então, eu desclassifiquei para

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

Não é a melhor solução para uma versão mais antiga, mas talvez seja apenas um bug temporário na versão beta, pois o caminho NDK em local.properties ainda é o mesmo, mas o IDE não se queixa mais

Marian Klühspies
fonte
Eu acho que isso é um bug do plug-in gradle desatualizado. Basta atualizar para o mais recente. Ele ajudou a me (de 3.0 a 3.2.0-beta05 no meu caso)
AnoDest
Eu acho que é atualizado, não rebaixado ... P
Shylendra Madda 17/01/19
7

O Android NDK 18.0 * parece ter um problema ao não criar todos os arquivos nas pastas após a extração. Devido a isso, a compilação do aplicativo falhará, que usa compilações do ndk.

Melhor é usar a versão NDK 17.1 * ( https://developer.android.com/ndk/downloads/ ) etc e você pode extrair ou usar a extração do android studio para o ndk-bundle por padrão funcionará bem.

appapurapu
fonte
5

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

Para pessoas que tentam este exemplo e enfrentam problemas com o NDK mais recente. Pode seguir esta solução. No build.gradle, altere isso

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

Para

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

O motivo é que os mips foram descontinuados nas versões mais recentes do ndk; a versão 3.1.2 do Gradle não terá compulsão por mips. Assume a presença para essas pastas ausentes.

Sujith Royal
fonte
4

Abra o Android Studio, vá para Ferramentas, Android e SDK, desmarque NDK. Se você não precisar disso, reinicie o Android Studio.

Muhammad Bilal
fonte
3

No arquivo Gradle, no nível do projeto, aumente a versão do caminho de classe das dependências para baixo, como

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

mudar como

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

Resolvido adicionando google()dependência nos dois repositórios em build.gradle(Project: ProjectName). então sincronize seu projeto

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

Eu tive um problema semelhante, mas queria usar a versão r9d do NDK devido a requisitos do projeto.

No local.propertiescaminho foi definido como, ndk.dir=C\:\\Android\\ndk\\android-ndk-r9dmas isso levou ao problema:

Nenhuma cadeia de ferramentas encontrada na pasta NDK toolchains para ABI com prefixo: [toolchain-name]

A solução foi:

  1. Instale o NDK mais novo usando o gerenciador sdk
  2. Copie a cadeia de ferramentas ausente [nome da cadeia de ferramentas] do novo ndk para o antigo. No meu caso de sdk\ndk-bundle\toolchainspara\ndk\android-ndk-r9d\toolchains
  3. Repita o processo até que todas as cadeias de ferramentas necessárias estejam lá

Parece-me que as cadeias de ferramentas copiadas não são usadas, mas, por algum motivo, é necessário que elas estejam lá.

Marcin Kunert
fonte
2

Eu resolvi essa questão pelo ndk não instalado, porque eu não preciso disso

alfa
fonte
2

Aqui está a correção.

Ao compilar um projeto no android studio, ocasionalmente encontro:

Erro: nenhuma cadeia de ferramentas encontrada na pasta NDK toolchains para ABI com prefixo: arm-linux-androideabi / llvm

Isso pode ser causado pela atualização de componentes relacionados. A solução é para o Android studio (Ferramentas -> Android -> Gerenciador de SDK). Selecione o item ndk e exclua-o. Se o programa precisar, você pode reinstalá-lo. Isso garantirá que o local da pasta esteja correto e não haverá esse problema.

0xAliHn
fonte
2

Para consertar como eu fiz

Arquivo do Android Studio> estrutura do projeto e vá para o projeto

altere a versão Gradle para 4.6 e a versão do plugin Android para 3.2.1

verificar captura de tela

limpe o projeto se você recebeu este erro "Não foi possível encontrar o aapt2-proto.jar"

vá para build.gradle (projeto)

Tente mover o método google () (arquivo .gradle) para o topo de sua execução e bloqueie a ordem dos repositórios pesquisados ​​que causam o problema.

por exemplo, altere isso:

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

Para isso:

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

Faça essas alterações nos "buildscript" e "allprojects"

verificar captura de tela

Se você não encontrou o google (), adicione-o

Bachlil
fonte
2

Para Android Studio 3.2.1 Atualize seu

Versão Gradle 4.6

Versão do plugin Android 3.2.1

Masum
fonte
2

O problema ocorre principalmente quando você está clonando um projeto anterior, especialmente do github. O que você pode fazer é

  1. Altere o caminho da classe para

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

no nível do seu projeto.

  1. Em seguida, altere todas as instâncias de compilação com implementação, exceto compileSdkVersion, mantenha-a como está no nível do aplicativo.

  2. Em vez de sincronizar, clique em make project (Ctrl + F9)

  3. Adicione repositórios do Google Maven, se necessário.

  4. Atualize o wrapper gradle, se necessário.

(O IDE do Android Studio solicitará / guiará o mesmo para as etapas 4 e 5)

corrige !! Desfrute de codificação

Aakash Birari
fonte
2

NOTA: Esta resposta parece ser específica para:, No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-androidmas foi vinculada aqui por:

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

Do NDK r19b:

more ~/Android/Sdk/ndk-bundle/CHANGELOG.md
  • Esta versão do NDK é incompatível com o plug-in Android Gradle versão 3.0 ou anterior. Se você vir um erro como esse No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android, atualize seu arquivo de projeto para [use o plugin versão 3.1 ou mais recente]. Você também precisará atualizar para o Android Studio 3.1 ou mais recente.
nikc
fonte
1

Se você não usar o NDK, desative a variável de ambiente ANDROID_NDK_HOME.

Cristan
fonte
1

Se você estiver usando o Ionic 3 Remova o ndk das ferramentas do android studio sdk.

Taimoor Tariq
fonte
Ótimo, como uma solução temporária para a necessidade específica de criar projetos android iônicos, embora não seja o ideal.
MFAL 12/10
1

Encontre o seu SDK para Android local; se você baixar o SDK relevante do ndk, haverá uma pasta chamada "ndk-bundle"

insira a descrição da imagem aqui

Há uma pasta chamada "toolchains" dentro.

insira a descrição da imagem aqui

Percebemos que não existem arquivos relacionados ao mips64el.

insira a descrição da imagem aqui

A solução é a seguinte:

Clique aqui para baixar o pacote NDK separadamente pelo navegador. Após descompactar, abra a pasta "toolchains", compare-a com a pasta android-sdk-> ndk-bundle-> toolchains, encontre a pasta que está faltando, copie as 3. anteriores. Recompile, o problema foi resolvido. Espero que ajude você a acasalar

Principe
fonte
1

Enfrentando o mesmo problema.

Eu obtive sucesso seguindo caminhos.

Abra o arquivo buldle.gradle e atualize as versões para seguir o caminho de classe

caminho de classe 'com.android.tools.build:gradle:3.2.1' caminho de classe 'com.google.gms: google-services: 4.2.0'

Em seguida, Sincronize e, depois de obter um dilaog para a versão Gradle de atualização, clique nesse link e aguarde o download de todas as atualizações necessárias (Espero que esteja disponível na Internet). Depois de muito tempo, você obteve sucesso.

subhash gaikwad
fonte
1

Primeiro, tente atualizar a versão do ndk https://developer.android.com/ndk/downloads/

Se isso não funcionar, tente o seguinte:

  • Crie uma pasta

    Vá para a pasta Sdk \ ndk-bundle \ toolchains (no meu caso, C: \ Users \ USER \ AppData \ Local \ Android \ Sdk \ ndk-bundle \ toolchains; você pode encontrar o seu em Arquivo-> estrutura do projeto-> SDK local no seu estúdio android) e crie uma pasta com o nome mostrado como ausente no erro, por exemplo: se o erro for

    Falha na sincronização do Gradle: nenhuma cadeia de ferramentas encontrada na pasta NDK toolchains para ABI com o prefixo: mipsel-linux-android

    Em seguida, crie uma pasta com o nome mipsel-linux-android

  • Incluir conteúdo Vá para a pasta Sdk \ ndk-bundle \ toolchains novamente e abra qualquer pasta que já esteja nela. Por exemplo: Sdk \ ndk-bundle \ toolchains \ aarch64-linux-android-4.9 (no mycase C: \ Users \ USER \ AppData \ Local \ Android \ Sdk \ ndk-bundle \ toolchains \ aarch64-linux-android-4.9) copie a pasta pré -criada nela para a pasta que criamos na última etapa

  • Execute o projeto novamente e ele funcionará

Espero que ajude!!

Dismi Paul
fonte
1

Na minha experiência limitada com esta pergunta, tento resolver o problema, use o seguinte método:

1.Fique na versão Android das ferramentas de construção o mesmo com a versão gradle. Por exemplo: se você usar a versão das ferramentas de compilação é 3.3.0, sua versão do gradle deve ser 4.10.1. Você pode fazer referência no link https://developer.android.com/studio/releases/gradle-plugin e alterar seu ferramentas de compilação e versão gradle no seu AS (Arquivo-> Estrutura do Projeto-> Projeto)

2.Se o método1 não funcionar, você poderá personalizar sua versão do ndk toolchains para resolver o problema: como o download ndk18 ou o ndk16, definir o caminho do ndk é o seu AS (Arquivo-> Estrutura do Projeto-> Local do SDK-> Local do Android NDK)

廖志伟
fonte
1

Navegue para C:\Users\lalit\AppData\Local\Android\Sdk\ndk-bundle\toolchains.

Agora, encontre o nome da pasta aarch64-linux-android-4.9e renomeie-o para mips64el-linux-android.

Execute novamente o aplicativo Android.

BlackHat Gaming
fonte