我想编译一个开源的android项目(Netguard)使用gradel (gradlew清洁构建)但我遇到了这个错误:

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
}

这是构造。应用项目的Gradle:

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。我不知道我是否应该提到其他东西,所以如果你需要任何信息,请评论。


当前回答

我通过在SDK-Tools中卸载NDK来修复这个错误。 因此,如果您不需要NDK,请卸载它。

其他回答

我也遇到过类似的问题,但由于项目需求,我想使用NDK r9d版本。

在当地。属性:路径设置为ndk。dir=C\:\\Android\\ndk\\ Android -ndk-r9d但这导致了一个问题:

在前缀为[toolchain-name]的ABI的NDK toolchains文件夹中没有找到工具链

解决方案是:

使用sdk管理器安装最新的NDK 将缺失的工具链[toolchain-name]从新的ndk复制到旧的ndk。在我的例子中,从sdk\ndk-bundle\工具链到\ndk\android-ndk-r9d\工具链 重复该过程,直到所有所需的工具链都存在

在我看来,复制的工具链没有被使用,但出于某种原因,它们需要在那里。

如果你使用Ionic 3,从android studio sdk工具中删除ndk。

注意:这个答案似乎是特定的:在NDK toolchains文件夹中找不到ABI的工具链,前缀为:mips64el-linux-android,但它被链接到这里:

* https://stackoverflow.com/questions/52193274/no-toolchains-found-in-the-ndk-toolchains-folder-for-abi-with-prefix-mips64el-l

来自NDK r19b:

more ~/Android/Sdk/ndk-bundle/CHANGELOG.md

此版本的NDK与Android Gradle插件不兼容 3.0或更老版本。如果你看到一个错误 在前缀为mips64el-linux-android的NDK toolchains文件夹中没有找到工具链, 将项目文件更新到[使用插件3.1或更新版本]。你也会 需要升级到androidstudio3.1或更新版本。

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

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

or

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

最新的NDK删除了对mips abi的支持,早期版本的android gradle插件仍然会检查mips工具链的存在。更多信息请看这里。

解决方案:升级android gradle插件到3.1或更新版本。

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

 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

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

从IntellJ IDEA卸载旧版本SDK ->外观->系统设置-> Android SDK -> SDK平台。

安装新的Android SDK版本,无论你想要什么版本。

在安装新的SDK时,取消选中SDK工具下的NDK复选框。