错误:在带有前缀:llvm的ABI的NDK工具链文件夹中找不到工具链

Sae*_*eed 193 android android-ndk android-gradle-plugin

我想使用gradel(gradlew clean build)编译一个开源的android项目(Netguard )但是我遇到了这个错误:

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
Run Code Online (Sandbox Code Playgroud)

我打破了,但没有找到帮助的东西.这是主要的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
}
Run Code Online (Sandbox Code Playgroud)

这里是build.gradle对的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.+'
}
Run Code Online (Sandbox Code Playgroud)

我正在使用gradle-2.9-allandroid-ndk-r10e.我不知道是否应该提及其他任何内容,如果您需要任何信息,请发表评论.

laz*_*bug 354

两年过去了,现在如果你遇到这里,你可能会遇到如下错误信息:

在带有前缀mips64el-linux-android的ABI的NDK工具链文件夹中找不到工具链

要么

在带有前缀mipsel-linux-android的ABI的NDK工具链文件夹中找不到工具链

最新的NDK删除了对mipsabi的支持,而android gradle插件的earler版本仍然检查mips工具链的存在.请看这里了解更多信息.

解决方案:将android gradle插件升级到3.1或更高版本.

例如,在项目级别gradle [28-Sept-2018]中添加以下内容

 classpath "com.android.tools.build:gradle:3.2.0"
Run Code Online (Sandbox Code Playgroud)

解决方法:创建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
Run Code Online (Sandbox Code Playgroud)

检查这个线程的三个选项来解决这类问题

  • 在Windows上:`mklink/d mips64el-linux-android aarch64-linux-android-4.9`和`mklink/d mipsel-linux-android arm-linux-androideabi-4.9`也适用于我. (15认同)
  • 尝试gradle 4.1,没有工作,但解决方法(文件夹mipsel-linux-android-dummy的创建)工作.谢谢@lazybug. (6认同)
  • 这里提到的解决方法是正确的:`#cn 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` (4认同)
  • @Girish升级**Android Gradle Plugin**在顶级`build.gradle`文件中,类似于`com.android.tools.build:gradle:3.2.0-rc02`,而不是Gradle版本 (2认同)

Nik*_*dva 64

对于Android studio 3.2.1+

升级您的Gradle插件

classpath 'com.android.tools.build:gradle:3.2.1'
Run Code Online (Sandbox Code Playgroud)

并看到魔术错误消失了.

快乐编码 - :)


小智 54

我通过在SDK-Tools中卸载NDK来修复此错误.因此,如果您不需要NDK,请将其卸载.

  • 如果我需要NDK怎么办? (6认同)

Nit*_*ith 34

我在Windows 8机器中将Android Studio从2.0升级到2.1时遇到了同样的问题.

我找到了解决方案.请使用以下步骤.

  1. https://developer.android.com/ndk/downloads/index.html下载Android NDK for Windows .
  2. 解压缩并从包中复制"toolchain"文件夹.
  3. 将文件夹粘贴到C:\ android-sdk-win \ndk-bundle下安装的NDK文件夹下.[安装路径可能因安装而异]
  4. 重启android studio.

发生这种情况是因为Android studio不会在稳定通道中获得完整的NDK更新.如果您没有在项目开发中使用NDK,只需从SDK目录中删除NDK文件夹即可.


小智 32

错误消息:"没有工具链在NDK工具链文件夹中找到ABI,前缀为:llvm".

在使用NDK进行Android Studio新安装后,我导入了一个Android代码示例,该示例使用了GitHub中的NDK并尝试编译它.

结果有一个错误:

在带有前缀:llvm的ABI的NDK工具链文件夹中找不到工具链

解决方案: 由于某些原因,macOS上的标准安装过程无法安装完整集:

~/Library/Android/sdk/ndk-bundletoolchains用所有工具错过了文件夹,

(应该是这样的:~/Library/Android/sdk/ndk-bundle/toolchains)

解决方案是单独下载NDK,打开它,复制文件夹toolchain并将其粘贴到文件夹:

~/Library/Android/sdk/ndk-bundle
Run Code Online (Sandbox Code Playgroud)

之后,它对我很有用.


V.M*_*rch 22

一步步:

1)使用旧的NDK版本打开页面:

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

在此输入图像描述

2)同意条款:

在此输入图像描述

3)下载旧版本NDK(例如16b):

在此输入图像描述

4)打开你的toolchains目录.

5)将您需要的toolchains文件从下载的zip文件夹中传输到您的toolchains文件夹:

在此输入图像描述

6)重建项目:

在此输入图像描述


UPD 30 2018年9月:
我使用Android NDK Revision r16b修复了我自己的错误.所以我用这个版本展示了这个例子.
但最好使用Android NDK,版本r17c(2018年6月).这是最后一个,支持mips(从Weekend的评论中得到合理的推荐).


小智 20

这个问题的最佳解决方案是:

  1. 转到 SDK 管理器。

  2. 接下来选择SDK工具。

  3. 取消选择 NDK(并排)。

  4. 申请并确定。


fri*_*mle 16

在没有下载,复制或符号链接的情况下,我能够通过简单地创建一个空目录来"修复"错误,其中旧版本的Android Gradle插件期望删除mips工具链:

mkdir -p $ANDROID_HOME/ndk-bundle/toolchains/mips64el-linux-android/prebuilt/linux-x86_64
Run Code Online (Sandbox Code Playgroud)

显然,这里$ANDROID_HOME指的是Android SDK安装的根源.如果您使用的MacOS,替换linux-x86_64darwin-x86_64上面的命令.在Windows上使用windows-x86_64.


小智 10

我卸载了NDK,因为我不需要它.转到Android工作室的SDK管理器(工具 - > Android - > SDK管理器).如果安装了NDK.只需取消选中该框,然后单击"确定".已删除的组件将被删除.


Abd*_*had 9

要解决该问题,只需转到:

Tools->Sdk Manager -> Android Sdk -> Android Studio 中的 SDK Tools并取消选中 NDK 版本,仅选择 20.1.5948944 版本并安装。 在此输入图像描述

我使用这种技术在 linux(Ubuntu) 机器上解决了同样的问题。


Mar*_*ies 8

在我的情况下,创建一个新的Android Studio(Android工作室3.2.1) Java项目时出现此错误

    classpath 'com.android.tools.build:gradle:2.0.0-beta6'
Run Code Online (Sandbox Code Playgroud)

所以我降级为

       dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
      }
Run Code Online (Sandbox Code Playgroud)

不是最好的解决方案留在旧版本,但可能只是测试中的一个临时错误,因为local.properties中的NDK路径仍然相同,但IDE不再抱怨


app*_*apu 7

Android NDK 18.0*似乎有一个问题,即在提取后没有在文件夹中创建所有文件.因此,您的应用程序编译将失败,使用ndk构建.

更好的是使用NDK 17.1*(https://developer.android.com/ndk/downloads/)等版本,你可以提取或使用android studio提取到默认情况下ndk-bundle工作正常.


Muh*_*lal 5

打开Android Studio,依次选择Tools、Android和SDK,如果不需要,取消NDK,然后重启android studio。


小智 5

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

对于尝试此示例并面临最新 NDK 问题的人们。可以按照这个解决方案。在 build.gradle 改变这个

classpath 'com.android.tools.build:gradle:3.0.1'
Run Code Online (Sandbox Code Playgroud)

classpath 'com.android.tools.build:gradle:3.1.2'
Run Code Online (Sandbox Code Playgroud)

原因是在最新的 ndk 版本中不推荐使用 mips,Gradle 版本 3.1.2 不会强制使用 mips。它假定存在这些丢失的文件夹。


Yaz*_*ifi 5

简单的解决方案是下载并解压以下包含 mips64el-linux-android-4.9 和 mipsel-linux-android-4.9 文件夹的文件到 sdk 内的工具链文件夹“android-sdk\ndk-bundle\toolchains”。

下载此文件并解压到工具链傻瓜


art*_*ras 5

有同样的问题。默认安装最新的 NDK rc 版本。最新的稳定版本修复了该问题。 在此输入图像描述