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


当前回答

更新类路径“com.android.tools.build:gradle:X.X.”项目构建中的X'。Gradle并将X替换为最新版本。

其他回答

要继续使用旧的gradle版本,我们可以使用以下解决方案:

注意文件android-ndk-r17-beta2/toolchains/mips64el-linux-android- 4.9 /预构建/ darwin-x86_64 / NOTICE-MIPS64。该文件的内容如下。

这个mips64el-linux-android-4.9目录的存在是为了使NDK与Android兼容 SDK的Gradle插件,3.0.1版本及更早版本,它期望使用NDK 拥有MIPS64工具链目录。

所以,我可以说,使用Android SDK的Gradle插件3.0.1以上,或者创建一个标有“mipsel”和“mips64el”的目录,都可以解决这个问题。后一种方法如下所示。

cd“path-to-ndk”

OS_=$(uname -s | tr [A-Z] [a-z])
mkdir -p toolchains/mipsel-linux-android-4.9/prebuilt/${OS_}-x86_64
touch toolchains/mipsel-linux-android-4.9/prebuilt/${OS_}-x86_64/NOTICE-MIPS
mkdir -p toolchains/mips64el-linux-android-4.9/prebuilt/${OS_}-x86_64
touch toolchains/mips64el-linux-android-4.9/prebuilt/${OS_}-x86_64/NOTICE-MIPS64

从这里得到解决方案

在我的例子中,这个错误发生在创建一个新的Android Studio (Android Studio 3.2.1) Java项目时

类路径的com.android.tools.build: gradle: 2.0.0-beta6

所以我已经降级到

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

保留旧版本并不是最好的解决方案,但可能这只是测试版中NDK路径在本地的临时错误。属性仍然相同,但IDE不再抱怨

打开Android Studio,选择Tools,然后选择Android,然后选择SDK,取消勾选NDK。如果你不需要这个,重新启动Android Studio。

更新类路径“com.android.tools.build:gradle:X.X.”项目构建中的X'。Gradle并将X替换为最新版本。

我所遵循的解决问题的步骤如下:

Analyze ->代码清理 从列表中选择项目,并将gradle版本更新到最新。 Build ->清洁项目 Build ->制作项目

现在,与构建相关的问题可能会被报告,比如使用编译而不是实现等。