Ошибка: в папке с программными цепочками 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'
}
Ответ 15
Простое решение - скачать и распаковать следующий файл, который содержит папки mips64el-linux-android-4.9 и mipsel-linux-android-4.9, в папку toolchains внутри sdk "android-sdk\ndk-bundle\toolchains".
Загрузите этот файл и извлеките его в набор инструментов
Ответ 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. Что вы можете сделать, это
- Изменить путь к классу
classpath 'com.android.tools.build:gradle:3.2.1'
в вашем проекте Gradle.
-
Затем измените все экземпляры компиляции с помощью реализации, за исключением compileSdkVersion, оставьте его в том же состоянии, что и на уровне приложения.
-
Вместо синхронизации теперь нажмите на make project (Ctrl + F9)
-
При необходимости добавьте репозитории Google Maven.
-
Обновите упаковщик 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.