Ошибка: в папке с программными цепочками NDK для ABI с префиксом нет инструментальных цепочек: llvm

Я хочу скомпилировать проект с открытым исходным кодом для Android (Netguard) с помощью gradel (gradlew clean build). Но я столкнулся с этой ошибкой:

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

Я сериал, но не нашел помощи. Вот главный 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
}

И вот < <22 > проекта 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.+'
}

И я использую gradle-2.9-all и android-ndk-r10e. Я не знаю, стоит ли упоминать что-нибудь еще, так что комментарий, если вам нужна какая-либо информация.

Ответ 1

Прошло два года, теперь, если вы столкнетесь здесь, вы можете встретить сообщение об ошибке, подобное этому:

В папке наборов инструментов NDK для ABI не найдено никаких цепочек инструментов с префиксом mips64el-linux-android

или же

В папке наборов инструментов NDK для ABI не найдено никаких наборов инструментов с префиксом mipsel-linux-android

В последнем NDK удалена поддержка mips abi, а более ранняя версия плагина Android Gradle по-прежнему проверяет наличие набора инструментов mips. смотрите здесь для получения дополнительной информации.

Решение: Обновите плагин Android Gradle до версии 3.1 или новее.

например, добавить следующее в gradle уровня проекта [28-Sept-2018]

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

Обходной путь: Создайте структуру папок mipsel-linux-android чтобы обмануть инструмент. Самый простой способ - это символическая ссылка на 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

Проверьте эту ветку из трех вариантов решения этой проблемы

Ответ 2

Для Android студии 3.2. 1+

Обновите свой плагин Gradle

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

Если вы сейчас получаете эту ошибку:

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

просто добавьте google() в свои репозитории, например так:

repositories {
    google()
    jcenter()
}

Удачного кодирования - :)

Ответ 3

Я исправил эту ошибку, удалив NDK в SDK-Tools. Итак, если вам не нужен NDK, удалите его.

Ответ 4

Я столкнулся с такой же проблемой, обновив студию Android с 2.0 до 2.1 на своей машине под Windows 8.

Я нашел решение для этого. Пожалуйста, используйте следующие шаги.

  • Загрузите андроид NDK для Windows из https://developer.android.com/ndk/downloads/index.html.
  • Извлеките то же самое и скопируйте папку "toolchain" из пакета.
  • Вставьте папку в установленную папку NDK под C:\android-sdk-win\ndk-bundle. [Установленный путь может отличаться в зависимости от вашей установки]
  • Перезапустите студию Android.

Это происходит потому, что студия Android не получит полного обновления NDK в стабильном канале. Если вы не используете NDK для разработки своего проекта, вы можете просто удалить папку NDK из своего каталога SDK.

Ответ 5

Сообщение об ошибке: "В папке с инструментами NDK toolchains для ABI с префиксом: llvm нет никаких привязок.

После новой веб-установки Android Studio с NDK я импортировал образец кода Android, который использовал NDK от GitHub и попытался его скомпилировать.

В результате возникла ошибка:

В наборе инструментальных средств NDK для ABI нет префиксов: llvm

Решение: по некоторым причинам стандартный процесс установки на macOS не смог установить полный набор:

~/Library/Android/sdk/ndk-bundle пропустили программные toolchains со всеми инструментами,

(это должно быть так: ~/Library/Android/sdk/ndk-bundle/toolchains)

Решением было загрузить NDK отдельно, откройте его, скопируйте папку toolchain и вставьте ее в папку:

~/Library/Android/sdk/ndk-bundle

После этого это сработало для меня.

Ответ 6

Шаг за шагом:

1) Откройте страницу со старыми версиями NDK:

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

enter image description here

2) Согласиться с Условиями:

enter image description here

3) Загрузите более старую версию NDK (например, 16b):

enter image description here

4) Откройте каталог toolchains.

5) Передача файлов, которые вам нужно из компилированные toolchains папки скачанного зип файл на компилированные toolchains папки:

enter image description here

6) Перестроить проект:

enter image description here


UPD 30 сентября 2018:
Я использовал Android NDK Revision r16b для исправления этой ошибки в моем собственном случае. Поэтому я представляю пример этой версии.
Но лучше использовать Android NDK, Revision r17c (июнь 2018 года). Это последняя, поддерживающая mips (разумная рекомендация из комментария Weekend).

Ответ 7

Не загружая, не копируя или не ссылаясь ни на что, я смог "исправить" ошибку, просто создав пустую директорию, в которой более старая версия плагина Android Gradle ожидает удаленной mcs toolchain:

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

Очевидно, что $ANDROID_HOME указывает на корень установки Android SDK здесь. Если вы используете MacOS, замените linux-x86_64 на darwin-x86_64 в приведенной выше команде. В Windows используйте windows-x86_64.

Ответ 8

Я удалил NDK, так как мне это не нужно. Перейдите в менеджер SDK на студии Android (Tools → Android → SDK Manager). Если установлен NDK. Просто снимите флажок и нажмите "ОК". Установленные компоненты будут удалены.

Ответ 9

В моем случае эта ошибка возникла при создании нового проекта Java Studio (Android studio 3.2.1) с Java

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

Поэтому я понижен до

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

Не лучшее решение остается в старой версии, но, возможно, это просто временная ошибка в бета-версии, поскольку путь NDK в local.properties по-прежнему остается прежним, но IDE больше не жалуется

Ответ 10

Android NDK 18.0 * кажется, проблема не создает все файлы в папках после извлечения. Из-за этого ваша компиляция приложения завершится неудачей, которая использует сборки ndk.

Лучше использовать версию NDK 17.1 * (https://developer.android.com/ndk/downloads/) и вы можете извлечь или использовать извлечение студии для Android в ndk-bundle по умолчанию, будет работать хорошо.

Ответ 11

Откройте Android Studio, откройте "Инструменты", затем "Android", затем "SDK", снимите флажок "NDK". Если вам это не нужно, перезапустите студию Android.

Ответ 12

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

Для людей, которые пробуют этот пример и сталкиваются с проблемами с последним NDK. Можете следовать этому решению. В build.gradle измени это

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

к

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

Причина в том, что mips устарели в последних версиях ndk, версия Gradle 3.1.2 не будет иметь обязательного значения для mips. Предполагается наличие этих отсутствующих папок.

Ответ 13

Решил его, добавив зависимость google() в оба репозитория в build.gradle (Project: ProjectName). затем синхронизируйте свой проект

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

Ответ 14

На вашем уровне проекта Gradle файл увеличивает зависимость классов classpath от версии до высокой, как

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

изменить как

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

Ответ 16

У меня была аналогичная проблема, но я хотел использовать версию NDK r9d из-за требований проекта.

В local.properties путь был установлен в ndk.dir=C\:\\Android\\ndk\\android-ndk-r9d, но это приводит к проблеме:

В папке с программными цепочками NDK для ABI с префиксом нет инструментальных цепочек: [toolchain-name]

Решение заключалось в следующем:

  • Установите новейший NDK с помощью диспетчера sdk
  • Скопируйте недостающую toolchain [toolchain-name] из нового ndk в старый. В моем случае от sdk\ndk-bundle\toolchains до \ndk\android-ndk-r9d\toolchains
  • Повторите этот процесс, пока не появятся все необходимые инструментальные цепочки.

Мне кажется, что скопированные инструментальные средства не используются, но по какой-то причине они должны быть там.

Ответ 17

Я решил этот вопрос unInstalled ndk, потому что мне это не нужно

Ответ 18

Вот исправление.

При компиляции проекта в студии android я иногда сталкиваюсь:

Ошибка: в наборе инструментальных средств NDK для ABI с префиксом нет наборов инструментов: arm-linux-androideabi/llvm

Это может быть вызвано обновлением связанных компонентов. Это решение для студии Android (Tools → Android → SDK Manager). Выберите элемент ndk и удалите его. Если программа нуждается в ней, вы можете ее переустановить. Это обеспечит правильное расположение папки и не будет такой проблемы.

Ответ 19

Чтобы исправить это, как я сделал

Android Studio File> структура проекта и перейти к проекту

изменить версию Gradle на 4.6 и версию плагина Android на 3.2.1

проверить скриншот

затем очистите проект, если вы получили эту ошибку "Не удалось найти aapt2-proto.jar"

перейти к build.gradle (проект)

Попробуйте переместить метод google() (файл.gradle) в верхнюю часть его блока выполнения, в порядке поиска репозиториев, в которых он ищет проблему.

например, измените это:

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

К этому:

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

Внесите эти изменения в "buildscript" и "allprojects"

проверить скриншот

Если вы не нашли Google(), добавьте его

Ответ 20

Для Android Studio 3.2.1 Обновите свой

Gradle версия 4.6

Плагин Android версии 3.2.1

Ответ 21

Проблема возникает, в основном, когда вы клонируете предыдущий проект специально из github. Что вы можете сделать, это

  1. Изменить путь к классу

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

в вашем проекте Gradle.

  1. Затем измените все экземпляры компиляции с помощью реализации, за исключением compileSdkVersion, оставьте его в том же состоянии, что и на уровне приложения.

  2. Вместо синхронизации теперь нажмите на make project (Ctrl + F9)

  3. При необходимости добавьте репозитории Google Maven.

  4. Обновите упаковщик Gradle, если это необходимо.

(Android Studio IDE попросит/покажет вам то же самое для шагов 4 и 5)

это исправляет !! Наслаждайтесь кодированием

Ответ 22

ПРИМЕЧАНИЕ. Этот ответ, по-видимому, No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android к следующему: No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android, но он был связан здесь с помощью:

* fooobar.com/questions/16376449/...

Из НДК р19б:

more ~/Android/Sdk/ndk-bundle/CHANGELOG.md
  • Эта версия NDK несовместима с плагином Android Gradle версии 3.0 или более ранней. Если вы видите ошибку типа " No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android, обновите файл проекта до [используйте плагин версии 3.1 или новее]. Вам также нужно будет обновить до Android Studio 3.1 или новее.

Ответ 23

Для меня, я думаю, может возникнуть проблема в установке Android NDK из студии Android. Я смог разрешить это следующим образом

Скачан android ndk из

https://developer.android.com/ndk/downloads/index.html

и помещается внутри ndk-bundle (где установлен ваш Android файл sdk). Для получения дополнительной информации проверьте эти экраны.

https://app.box.com/s/dfi4h9k7v4h0tmbu3z9qnqx3d12fdejn

Ответ 24

Если вы не используете NDK, отключите переменную окружения ANDROID_NDK_HOME.

Ответ 25

Если вы используете Ionic 3, удалите ndk из инструментов sdk для студии android.

Ответ 26

Найдите свой локальный Android-SDK, если вы загрузите соответствующий SDK из ndk, там будет папка под названием "ndk-bundle"

enter image description here

Внутри есть папка "toolchains".

enter image description here

Мы заметили, что внутри нет файлов, связанных с mips64el.

enter image description here

Решение заключается в следующем:

Нажмите здесь, чтобы загрузить пакет NDK отдельно через браузер. После распаковки откройте папку "toolchains", сравните ее с папкой android-sdk-> ndk-bundle-> toolchains, найдите отсутствующую папку, скопируйте последние 3. Перекомпилируйте, проблема решена. Надеюсь, это поможет тебе, приятель

Ответ 27

Столкнувшись с той же проблемой.

Я добился успеха следующими способами.

Откройте свой файл buldle.gradle и обновите версии, чтобы они следовали обоим classpath

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

Затем выполните синхронизацию, а затем получите один файл для обновления версии Gradle, а затем нажмите эту ссылку и дождитесь загрузки всех необходимых обновлений (надеюсь, Интернет доступен). После долгого времени вы получили успех.

Ответ 28

Сначала попробуйте обновить версию ndk https://developer.android.com/ndk/downloads/.

Если это не работает, то вы можете попробовать следующее:

  • Создать папку

    Перейдите в папку Sdk\ndk-bundle\toolchains (в моем случае это C:\Users\USER\AppData\Local\Android\Sdk\ndk-bundle\toolchains; вы можете найти свой в File-> project structure- > Расположение SDK в вашей андроид студии) и создайте папку с именем, которое показано как отсутствующее в ошибке, например: если ошибка

    Не удалось синхронизировать синхронизацию: в папке наборов инструментов NDK для ABI не найдено цепочек инструментов с префиксом: mipsel-linux-android

    Затем создайте папку с именем mipsel-linux-android

  • Включить содержимое Снова перейдите в папку Sdk\ndk-bundle\toolchains и откройте любую папку, которая уже в нем. Например: Sdk\ndk-bundle\toolchains\aarch64-linux-android-4.9 (в моем случае C:\Users\USER\AppData\Local\Android\Sdk\ndk-bundle\toolchains\aarch64-linux-android-4.9) скопируйте предварительно созданную папку в папку, созданную на последнем шаге

  • Запустите проект еще раз, и он будет работать

Надеюсь, поможет!!

Ответ 29

Шаги, которые я выполнил, чтобы исправить проблему следующим образом:

Analyze → Code Cleanup

File → Project Structures → Select project from the list and update the gradle version to latest.

Build → Clean Project

Build → Make Project

Теперь проблема, связанная с сборкой, может быть сообщена как использование компиляции вместо реализации и т.д.

Пожалуйста, исправьте их и, надеюсь, он должен исправить эту проблему.

Ответ 30

Я исправил проблему, переустановив NDK.