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


当前回答

升级你的Gradle插件

com.android.tools.build: gradle: 3.1.4 升级gradle的wraperproperties - 4.4 - all.zip distributionUrl = https://services.gradle.org/distributions/gradle

其他回答

要解决这个问题,请转到:

工具->Sdk管理器-> Android Sdk ->Sdk工具在Android Studio和 取消选中NDK版本,只选择20.1.5948944版本并安装它。

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

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

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

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

使用这个选项过滤出希望Abi前缀的使用:

android {
    defaultConfig {
        ndk {
            abiFilters 'arm64-v8a', 'x86_64', ...
        }
    }
}

我在Windows 8机器上将Android studio从2.0升级到2.1时也遇到过同样的问题。

我找到了一个解决办法。请按以下步骤操作。

从https://developer.android.com/ndk/downloads/index.html下载android NDK for windows。 提取相同的文件并从bundle中复制“toolchain”文件夹。 将文件夹粘贴在C:\android-sdk-win\ NDK -bundle下的installed NDK文件夹下。[安装路径可能会根据您的安装而有所不同] 重新启动android studio。

这是因为Android工作室无法通过稳定渠道获得完整的NDK更新。如果你不使用NDK进行项目开发,你可以简单地从SDK目录中删除NDK文件夹。

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